14

私は次のコードを試しました:

Label label = new Label(reallyLongString, skin);
label.setWrap(true);
label.setWidth(100); // or even as low as 10
table.add(label);
...

それでも、画面から引き出される非常に広い線しか得られません。折り返されたテキストでラベルを取得するには?

4

3 に答える 3

34

これは、 slider always has default widthまたは"Slider always has default width"で見られる問題と同じです。

そのラベルをテーブルに入れ、ラベルがあるテーブルのセルに適切なサイズを追加する必要があります。

UI ウィジェットは、独自のサイズと位置を設定しません。代わりに、親ウィジェットが各子のサイズと位置を設定します。ウィジェットは、親がヒントとして使用できる最小サイズ、優先サイズ、および最大サイズを提供します。テーブルなどの一部の親ウィジェットには、子のサイズと配置方法に関する制約を与えることができます。ウィジェットにレイアウト内の特定のサイズを指定するには、ウィジェットの最小サイズ、優先サイズ、および最大サイズをそのままにして、サイズの制約を親に設定します。

出典: libgdx wiki Scene2D から

ソリューション:

Label label = new Label(reallyLongString, skin);
label.setWrap(true);
label.setWidth(100); // or even as low as 10
table.add(label).width(10f);// <--- here you define the width
于 2013-09-01T10:27:19.523 に答える
3

テーブルやラッピング コンテナーを使用せずに、次のコードで問題を解決できることがわかりました (libgdx-1.9.6 の場合)。

label = new Label("Some label", skin);
label.setPosition(600, 50);
label.setWidth(200);
label.setHeight(50);
label.setWrap(true);
stage.addActor(label);
于 2017-07-31T21:03:38.203 に答える