GWT: Как разместить макеты по горизонтали? - PullRequest
2 голосов
/ 12 января 2012

Я использую GWT 2.4.У меня возникают проблемы с горизонтальным размещением виджетов на панели моего TabLayoutPanel.Как расположить панели горизонтально, а затем перенести виджеты на следующую строку, когда больше нет видимой комнаты?В общем, я создаю TabLayoutPanel примерно так ...

tabsPanel = new TabLayoutPanel(BAR_HEIGHT_IN_EM, Style.Unit.EM);
for (final Node tabNode : documentNode.getChildren()) {
    final ScrollPanel scrollPanel = new ScrollPanel();
    ...
    Widget childWidget = createPanelFromWidgets(childWidgets);
    ...
    scrollPanel.add(childWidget);
    tabsPanel.add(scrollPanel, tabName);
}


public static Widget createPanelFromWidgets(final List<Widget> childWidgets) { 
    final FlowPanel horizPanel = new FlowPanel();
    for (final Widget childWidget : childWidgets) { 
        horizPanel.add(childWidget);
    }   // for
    return horizPanel;
}   // createPanelFromWidgets

Есть идеи, где я ошибаюсь?Я думал, что документация () говорит, что все будет автоматически размечено горизонтально, но я вижу, что все разложено вертикально.

  • Дейв

PS - Горизонтальная панель не является опцией, потому что я хочу, чтобы мои элементы переносились, когда больше нет видимой области.

1 Ответ

5 голосов
/ 12 января 2012

Когда вы помещаете объекты в FlowPanel, вы получаете поведение макета HTML по умолчанию, а не горизонтальный макет. Если вы проверяете стилизацию ваших виджетов с помощью firebug или чего-то подобного, они, вероятно, используют «display: block;» (большинство делают). При отображении блока они отображаются вертикально.

Если вы измените атрибут отображения CSS каждого childWidget на «inline-block» или «inline», они должны выровняться по горизонтали, а также обернуться.

...