我想通过仅使用ui.xml文件使用所述面板进行绝对布局,但是不清楚这是否可行,因为文档集中在代码上并完全忽略了布局语言。我假设,因为教程没有提到这一点,所以不可能,但想肯定地知道。
答案 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开发人员希望避免这种情况。