5

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

4

2 回答 2

9

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

在 UiBinder 模板中使用

UiBinder 模板中的 AbsolutePanel 元素使用元素以绝对位置布置它们的子元素。每个 at 元素都应具有以像素为单位的 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>
于 2011-06-15T23:12:54.453 回答
2

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

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

但是,这与“bean”(如在 Java Beans 中;如果您有getSomethingCool方法,则可以somethingCool="kewl"在 UiBinder 代码中编写,它会自动调用适当的 get/set 方法)样式冲突 - 因为Button没有setX/Y方法。这可以通过setX/Y在编译时将调用替换为对现有方法(CSS 定位等)的适当调用来绕过。但这引入了另一种自定义行为,依赖于包装小部件/面板 - 我认为 GWT 开发人员希望避免这种情况。

于 2010-05-14T17:06:13.827 回答