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);
如果所有的孩子都來自像標籤一樣的小部件類型,它將會水平流動。如果一個小部件是標籤,另一個是文本框,則它將垂直流動。任何任何我找到解決方案 – Tum
@Minh海,這是不正確的,這取決於小部件的性質。如果所有的小部件都是標籤,它們總是垂直流動,除非您將樣式設置爲另一個東西。 –
Thax你爲你的答案,但它是否真的與FlowPanel比垂直面板或水平面板運行多?自VP&HP使用
使用
display:block;
爲孩子們,那麼它會沒事的。 將VerticalPanel轉換爲FlowPanel後,我發現我的應用運行速度更快。來源
2013-10-09 07:04:55 Tum
相關問題