2013-12-13 25 views
0

我正在使用ui活頁夾將元素放置在GWT頁面上,但我無法正確放置元素。根據我在流程面板中的知識元素應顯示爲水平線,但它們是出現在一條垂直線上。如何將元素放置在GWT中的Flowpanel上

<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

FlowPanel被轉換爲div元素。您可以使用Horizo​​ntalPanel。 – Fedy2

回答

2

FlowPanel只是一個圍繞簡單的div元素的(小部件)包裝。根據標準的HTML行爲,所有子窗口小部件自然流(即,塊和內聯元素如此顯示)。

相反,Label小部件不是HTML label元素的包裝。再次,是div,所以你的FlowPanel所有東西都會堆積起來。

可以:

  • 使用InlineLabel代替Label(將呈現爲span元件);
  • Label或任何其他CSS技巧上使用float樣式以使兩個div水平對齊;
  • 使用HTMLPanel而不是FlowPanel(它們將表現相同),並且使用HTML也可以爲標籤等簡單事物(即混合搭配內部的HTML和Widgets)佈局元素;
  • 使用HorizontalPanel而不是FlowPanel(但這會渲染爲table元素,請注意)。
0

該標籤被一個<div>標籤包圍。沒有CSS樣式,每個<div>-tag都有一個換行符。

用途:

searchLabel.getElement().getStyle().setFloat(Style.Float.LEFT); 

避免線路中斷。

1

Flow Panel的工作有些奇怪。將不會安排流程中的所有元素。僅對於某些元素,它會按預期工作。例如Buttons。 如果塊級元素將與垂直面板相同。例如,如果要在流式面板中插入兩個水平面板,它與在垂直面板中插入相同。 要實現並排排列,您必須使用CSS Float樣式。

相關問題