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
相关问题