如何在UiBinder XML文件中使用AbsolutePanel

时间:2010-05-12 22:38:08

标签: gwt css-position

我想通过仅使用ui.xml文件使用所述面板进行绝对布局,但是不清楚这是否可行,因为文档集中在代码上并完全忽略了布局语言。我假设,因为教程没有提到这一点,所以不可能,但想肯定地知道。

2 个答案:

答案 0 :(得分:9)

我知道这是旧的,但他们更新了AbsolutePanel的uibinder

  

在UiBinder模板中使用

     

UiBinder中的AbsolutePanel元素   模板布置他们的孩子   绝对位置,使用   元素。每个元素都应该有   left和top属性,以像素为单位。   它们还可以包含小部件子项   直接,没有指定位置。

     

例如:

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

答案 1 :(得分:2)

你是对的 - 目前没有办法做到这一点。通过引入一些自定义语法,可以在将来的GWT版本中解决此 ,就像为DockLayoutPanel所做的那样。但我对此表示怀疑 - 你想要编写这样的代码:

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

然而,这与“bean”冲突(如在Java Bean中;如果你有getSomethingCool方法,你可以在UiBinder代码中编写somethingCool="kewl",它会自动调用相应的get / set方法)样式 - 因为Button没有setX/Y方法。这可以通过在编译时用适当的调用现有方法(CSS定位等)替换setX/Y调用来绕过。但这引入了另一种自定义行为,取决于包装Widget / Panel - 我认为GWT开发人员希望避免这种情况。