使用RowLayout不会为父级提供高度

时间:2011-12-30 07:58:55

标签: java gxt

我正在使用RowLayout作为容器。布局具有水平方向。我没有指定容器的任何高度。我希望它能根据孩子的身高得到高度。但GXT根本没有显示容器的子项,除非我明确指定容器的高度。

使用带水平方向的RowLayout时,有没有办法让容器根据其子项获取高度而不指定高度?

public class RowLayoutNoHeight implements EntryPoint {
public void onModuleLoad() {
    ContentPanel cp = new ContentPanel();
    cp.setSize(300, 400);

    final LayoutContainer innerPanel = new LayoutContainer();
    innerPanel.setBorders(true);
    innerPanel.setLayout(new RowLayout(Orientation.HORIZONTAL));

    Text firstText = new Text("First text");
    Text secondText = new Text("Second text");

    // Here, innerPanel will not have any height. That is, I don't see the
    // text components in the UI
    innerPanel.add(firstText, new RowData(1, -1));
    innerPanel.add(secondText, new RowData(1, -1));

    Viewport viewPort = new Viewport();

    cp.add(innerPanel);
    viewPort.add(cp);
    RootPanel.get().add(viewPort);  
  }
}

GWT版本 - 2.4 GXT版本 - 2.2.5 Browser-IE 8和Firefox 7.0.1

谢谢, 内甚

2 个答案:

答案 0 :(得分:0)

你已经给你的innerPanel一个布局,它只会影响该面板中的小部件,只需添加

cp.setLayout(new RowLayout(Orientation.HORIZONTAL));

宣布主面板后。

答案 1 :(得分:0)

如果你可以为你的容器做一个布局(true),你会发现你的问题立即消失了!