gpt4 book ai didi

java - Libgdx Label 多行文本高度

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:20 26 4
gpt4 key购买 nike

我在 LibGdx 上做了一个小测试,在多行标签上,似乎我无法获得换行的高度。以下是代码。理论上,aLebel 的高度应该 > bLabel。但结果看起来是一样的。

代码:

aLabel.setText("this is a super long long long text that need wrapping."); // line wrapped into 3 lines
aLabel.setWrap(true);
aLabel.setWidth(470);
doLog("aLabel.getHeight(): " + aLabel.getHeight());

bLabel.setText("this is short."); // unwrapped line
bLabel.setWrap(true);
bLabel.setWidth(470);
doLog("bLabel.getHeight(): " + bLabel.getHeight());

结果:

aLabel.getHeight(): 45.0
bLabel.getHeight(): 45.0

有谁知道如何在 LibGdx 中获取实际的多行高度?提前致谢。

最佳答案

这个问题我困扰了很多年,无意中通过设置宽度和包装标签两次解决了这个问题。请注意,多行标签永远不会计算出它们自己的宽度,因此您必须在外部设置它们,最好是从它的父级设置。

public Label createLabel() {
// Create label and set wrap
Label label = new Label("Some long string here...", skin);
label.setWrap(true);

// Pack label
label.pack(); // This might not be necessary, unless you're changing other attributes such as font scale.

// Manual sizing
label.setWidth(textWidth); // Set the width directly
label.pack(); // Label calculates it's height here, but resets width to 0 (bug?)
label.setWidth(textWidth); // Set width again

return label;
}

使用的 LibGDX 版本:1.6.4

关于java - Libgdx Label 多行文本高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24276180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com