一個標籤我嘗試下面的代碼:libgdx - 如何讓裹着文本
Label label = new Label(reallyLongString, skin);
label.setWrap(true);
label.setWidth(100); // or even as low as 10
table.add(label);
...
,但我得到的是一個非常寬的線條繪製在屏幕上。
一個標籤我嘗試下面的代碼:libgdx - 如何讓裹着文本
Label label = new Label(reallyLongString, skin);
label.setWrap(true);
label.setWidth(100); // or even as low as 10
table.add(label);
...
,但我得到的是一個非常寬的線條繪製在屏幕上。
這與"How to get a Label to the right size"或"Slider always has default width"中所見的問題相同。
您需要將該標籤放入表格中,並將正確的尺寸添加到標籤所在表格的單元格中。
UI小部件不會設置自己的大小和位置。相反,父窗口小部件會設置每個小孩的大小和位置。小部件提供父級可用作提示的最小,首選和最大大小。一些家長小部件(如表格)可能會受到限制,無法確定孩子的大小和位置。要在佈局中爲小部件指定特定的大小,小部件的最小值,首選大小和最大大小將單獨保留,並在父項中設置大小約束。
來源:From the 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
如果你只是想指定首選的大小單部件,與容器包裹。
https://github.com/libgdx/libgdx/wiki/Scene2d.ui#layout-widgets
是這樣的:
Container<Label> labelContainer = new Container(myLabel);
labelContainer.prefWidth(200.0f);
請注意,實際尺寸將取決於容器層次變化 - 如果放在例如,labelContainer上述將顯示不同的在另一個佈局對象中。
規模也將根據檢視變化等
我發現這個代碼可以解決問題沒有任何表或包裝容器(用於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);
而不是我使用[此WidgetGroup實現](https://github.com/MobiDevelop/maps-editor/blob/master/maps-editor/src/com/mobidevelop/maps/editor/ui/HorizontalFlowGroup.java )(請參閱[這個問題](http://stackoverflow.com/questions/20303378/need-an-analog-for-inline-block-from-css-in-scene2d-ui)解釋爲什麼我需要它)。是否只能將文本包裝在Table內的Label中,或者任何WidgetGroup實現都可以提供該功能? – gvlasov
我會試一試,因爲它基於相同的系統。所以我認爲小組也應該提供相同的功能。 Regualy設置了容器的寬度,而不是標籤的寬度或者自身的寬度。這也應該是組的規則 – BennX
此方法在TextButtons中不可用 –