我正在使用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 - HorizontalPanel不是一个选项,因为我希望我的元素在没有更多可见区域时换行。
答案 0 :(得分:5)
将对象放入FlowPanel时,您将获得默认的HTML布局行为,而不一定是水平布局。如果您使用firebug或类似的东西检查小部件的样式,他们可能会使用“display:block;” (大部分都是)。使用块显示,它们会垂直显示。
如果将每个childWidget的CSS显示属性更改为“inline-block”或“inline”,它们应该水平对齐并包装。