沿着y轴的BoxLayout的Codename中的SpanLabel不跨越

时间:2016-08-03 18:12:06

标签: codenameone

我需要在另一个下面显示标签列表,但有些标签可能在多行上。因此,我沿着y轴创建了一个带有BoxLayout的可滚动容器,并尝试使用SpanLabels,但它显示为普通标签。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

Form f = new Form("Span", BoxLayout.y()); 

f.add(new SpanLabel("Short"));
f.add(new SpanLabel("Not so short"));
f.add(new SpanLabel("Not so long as to line break"));
f.add(new SpanLabel("This should totally line break because it's getting to that length where it should have an effect"));
f.add(new SpanLabel("Short"));
f.add(new SpanLabel("Not so short"));
f.add(new SpanLabel("Not so long as to line break"));
f.add(new SpanLabel("This should totally line break because it's getting to that length where it should have an effect"));

f.show();     

enter image description here

答案 1 :(得分:0)

  

因此,我沿着y轴创建了一个带有BoxLayout的可滚动容器,并尝试使用SpanLabel,但它显示为普通标签。我错过了什么吗?

这是不工作的关键。我调用了container.setScrollable(true),这使得它可以在x和y中滚动,所以尽管我使用了SpanLabel,它仍然显示在一行上,因为它可以水平滚动。这样:

    this.container.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    this.container.setScrollableY(true);
    this.container.setScrollableX(false);

为我修好了。