2013-10-09 56 views

回答

11

A FlowPanel呈現爲html'< div>',因此添加到它的任何內容都將根據其默認顯示進行定位。

例如孩子小部件呈現爲「< DIV>」像Label將被垂直放置,因爲它們的默認行爲是爲塊,但如果添加一個TextBox將呈現爲「<輸入>」,並將其缺省顯示內嵌塊。

所以處置在FlowPanel孩子的方式是設置屬性display適當爲每個孩子,與float財產,或任何其他的CSS的調整像flexbox播放。通常gwt設計者在ui-binder模板中設置樣式。但如果你想通過代碼你可以做到這一點:

// Example of a flow panel with all elements disposed in vertical 
    FlowPanel verticalFlowPanel = new FlowPanel(); 
    TextBox textBox = new TextBox(); 
    Label label = new Label("Foo"); 
    textBox.getElement().getStyle().setDisplay(Display.BLOCK); 
    verticalFlowPanel.add(textBox); 
    verticalFlowPanel.add(label); 
    RootPanel.get().add(verticalFlowPanel); 

    // Example of a flow panel with all elements disposed in horizontal 
    FlowPanel horizontalFlowPanel = new FlowPanel(); 
    TextBox textBox2 = new TextBox(); 
    Label label2 = new Label("Foo"); 
    label2.getElement().getStyle().setDisplay(Display.INLINE_BLOCK); 
    horizontalFlowPanel.add(textBox2); 
    horizontalFlowPanel.add(label2); 
    RootPanel.get().add(horizontalFlowPanel); 
+0

如果所有的孩子都來自像標籤一樣的小部件類型,它將會水平流動。如果一個小部件是標籤,另一個是文本框,則它將垂直流動。任何任何我找到解決方案 – Tum

+0

@Minh海,這是不正確的,這取決於小部件的性質。如果所有的小部件都是標籤,它們總是垂直流動,除非您將樣式設置爲另一個東西。 –

+0

Thax你爲你的答案,但它是否真的與FlowPanel比垂直面板或水平面板運行多?自VP&HP使用

標籤以來? – Tum

0

使用display:block;爲孩子們,那麼它會沒事的。 將VerticalPanel轉換爲FlowPanel後,我發現我的應用運行速度更快。