2012-01-11 26 views
2

我正在使用GWT 2.4。我無法在TabLayoutPanel的窗格中水平佈置小部件。我如何水平佈局面板,然後在沒有更多可見空間的情況下將小部件換到下一行?嚴格地說,我創建像這樣的TabLayoutPanel ...GWT:我如何水平佈局小部件?

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 - Horizo​​ntalPanel是不是因爲我希望我的元素來包裝時,有沒有更多的可見區域的選項。

回答

5

當您將對象放入FlowPanel中時,您將獲得默認的HTML佈局行爲,而不一定是水平佈局。如果你使用螢火蟲或類似的東西來檢查你的小部件的樣式,他們可能使用「display:block;」 (大部分都是)。通過塊顯示,它們垂直顯示。

如果將每個childWidget的CSS display屬性更改爲「inline-block」或「inline」,則它們應該水平對齊並進行換行。

+2

「inline」無法正常工作,但設置了「display:inline-block」。 – Dave 2012-01-11 22:32:40