Использование RowLayout не дает высоты родителю - PullRequest
0 голосов
/ 30 декабря 2011

Я использую 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 Браузер - IE 8 и Firefox 7.0.1

Спасибо, Ганеш

Ответы [ 2 ]

0 голосов
/ 21 августа 2012

Если бы вы могли сделать макет (true) для своего контейнера, вы обнаружите, что ваша проблема сразу исчезает!

0 голосов
/ 04 января 2012

Вы дали своей внутренней панели макет, который будет влиять только на виджеты на этой панели, просто добавьте

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

после того, как вы объявите основную панель.

...