如何获取带有自动换行文本的标签?

2022-09-03 04:05:22

我尝试了以下代码:

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

然而,我得到的只是一条非常宽的线,从屏幕上画出来。如何获取带有自动换行文本的标签?


答案 1

这与滑块始终具有默认宽度“滑块始终具有默认宽度”中看到的问题相同。

您需要将该标签放入表格中,并将正确的大小添加到标签所在的表格的单元格中。

UI 小部件不设置自己的大小和位置。相反,父构件设置每个子小部件的大小和位置。小组件提供父级可用作提示的最小、首选和最大大小。某些父构件(如 Table)可以对如何调整子项的大小和位置进行约束。要在布局中为微件指定特定大小,将保留构件的最小、首选和最大大小,并在父级中设置大小约束。

来源:来自 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

答案 2

我发现下面的代码可以在没有任何表或包装容器的情况下解决问题(对于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);

推荐