2010-05-12 59 views
5

我想通過僅使用ui.xml文件來使用所述面板進行絕對佈局,但是由於文檔集中在代碼並忽略佈局,因此不清楚這是否可能語言。我假設,由於教程沒有提到這一點,這是不可能的,但肯定知道。如何在UiBinder XML文件中使用AbsolutePanel

回答

9

我知道這是舊的,但他們更新的AbsolutePanel

使用在UiBinder的模板的UiBinder的在UiBinder的

AbsolutePanel元素 模板奠定了自己的孩子 絕對位置,使用 元素。元素中的每個元素應該具有 左側屬性和頂部屬性(以像素爲單位)。 他們還可以直接包含窗口小部件子項 ,沒有指定位置。

例如:

<g:AbsolutePanel> 
    <g:at left='10' top='20'> 
    <g:Label>Lorem ipsum...</g:Label> 
    </g:at> 
    <g:Label>...dolores est.</g:Label> 
</g:AbsolutePanel> 
+0

這是現在正確的答案。如此更新。 – nick 2011-07-08 21:35:13

2

你是對的 - 目前沒有辦法做到這一點。這個可能會通過引入一些自定義語法在未來的GWT版本中解決,例如它爲DockLayoutPanel完成。但我懷疑它 - 你想要編寫這樣的代碼:

<g:AbsolutePanel ui:field="absolutePanel"> 
    <g:Button x="50px" y="50px">Test</g:Button> 
</g:AbsolutePanel> 

然而,這與衝突的「豆」(如Java組件;如果你有一個getSomethingCool方法,你可以在UiBinder的寫somethingCool="kewl"代碼,它會autmagically調用適當的get/set方法)風格 - 因爲Button沒有setX/Y方法。這可以通過在編譯時用現有方法(CSS定位等)的適當調用替換setX/Y調用來繞過。但是這引入了另一個自定義行爲,依賴於Widget/Panel的包裝 - 我認爲GWT開發人員希望避免這種情況。

+0

感謝您的確認。我可以根據你寫的內容使用setter,但這太麻煩了。 – nick 2010-05-20 00:31:45

+0

這曾經是正確的答案,請參閱檢查新信息。 – nick 2011-07-08 21:35:32

相關問題