我正在使用ui binder将元素放在GWT页面上,但我无法正确放置它们。根据我的知识,流程面板中的元素应该出现在水平线上,但它们出现在垂直线上。
<g:FlowPanel>
<g:Label ui:field="searchLabel" text="{labels.searchFor}"> </g:Label>
<g:ListBox ui:field="searchListBox"></g:ListBox>
</g:FlowPanel>
<g:SimplePanel addStyleNames="{cres.style.textAlignCenter}">
<g:Button ui:field="searchButton" text="{clabels.search}"/>
</g:SimplePanel>
答案 0 :(得分:2)
FlowPanel
只是一个简单的div
元素的(小部件)包装器。所有子窗口小部件将按照标准HTML行为自然流(即,块和内联元素都显示为这样)。
相反,Label
窗口小部件不是HTML label
元素的包装器。同样,是div
,所以所有内容都会在FlowPanel
。
你可以:
InlineLabel
代替Label
(将呈现为span
元素); float
上使用Label
样式或任何其他CSS技巧,使两个div
水平对齐; HTMLPanel
代替FlowPanel
(它们的行为相同),并使用HTML格式化元素,例如标签之类的简单内容(即混合搭配HTML和Widgets) ; HorizontalPanel
代替FlowPanel
(但这将呈现为table
元素,请注意。答案 1 :(得分:1)
答案 2 :(得分:0)
标签周围是<div>
- 标签。如果没有css样式,则每个<div>
- 标记都有一个换行符。
使用:
searchLabel.getElement().getStyle().setFloat(Style.Float.LEFT);
避免换行。