私は次のコードを試しました:
Label label = new Label(reallyLongString, skin);
label.setWrap(true);
label.setWidth(100); // or even as low as 10
table.add(label);
...
それでも、画面から引き出される非常に広い線しか得られません。折り返されたテキストでラベルを取得するには?
これは、 slider always has default widthまたは"Slider always has default width"で見られる問題と同じです。
そのラベルをテーブルに入れ、ラベルがあるテーブルのセルに適切なサイズを追加する必要があります。
UI ウィジェットは、独自のサイズと位置を設定しません。代わりに、親ウィジェットが各子のサイズと位置を設定します。ウィジェットは、親がヒントとして使用できる最小サイズ、優先サイズ、および最大サイズを提供します。テーブルなどの一部の親ウィジェットには、子のサイズと配置方法に関する制約を与えることができます。ウィジェットにレイアウト内の特定のサイズを指定するには、ウィジェットの最小サイズ、優先サイズ、および最大サイズをそのままにして、サイズの制約を親に設定します。
ソリューション:
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
テーブルやラッピング コンテナーを使用せずに、次のコードで問題を解決できることがわかりました (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);