2

我需要在 UiBinder 中实现一个 DockLayoutPanel。我知道我们可以在 UiBinder 中使用 <g:north> <g:west> 等来做与 DockLayoutPanel.addNorth()、DockLayoutPanel.addWest() 一样的事情。

我的问题是,Uibinder 中有什么东西可以和 DockLayoutPanel.insertNorth()、DockLayoutPanel.insertWest() 做同样的事情吗?

另外,是否有任何官方文档可以搜索 Uibinder 命令,以便我可以知道我可以用于 uibinder 什么?

谢谢。

4

3 回答 3

2

这是您要查找的内容:

<g:FlowPanel>
    <g:DockLayoutPanel ui:field="myPanel">
        <g:west size="300">
            <g:VerticalPanel ui:field="mySideBar" />
        </g:west>
        <g:center>
            <g:VerticalPanel ui:field="myMainPanel" />
        </g:center>
    </g:DockLayoutPanel>
</g:FlowPanel>
于 2012-10-05T18:34:54.837 回答
0

Ui:Binder 中没有“命令”。您可以使用小部件和 HTML 指定布局,并且可以为小部件设置各种属性(如类、宽度、高度、文本、标题、值等)。但是你不能告诉 Ui:Binder 在一种情况下插入一个小部件,而不是在另一种情况下插入它。您可以在您的应用程序代码中执行此操作。

于 2012-10-05T18:57:35.490 回答
0

DockLayoutPanel的add*()insert*()方法都用于以编程方式运行时添加子面板。UiBinder 不会做与那些方法“相同的事情”。您直接使用 UiBinder 的工作仅在设计时发生。

UiBinder 是一个静态布局工具,它是您的小部件在初始化后立即的“快照”,一种描述元素相对于彼此的定位的方式。

您使用 UiBinder 指定的小部件可以在初始化后以编程方式进行操作。假设您指定了以下布局:

 <g:DockLayoutPanel ui:field="myDockPanel">
    <g:north size="100">
        <g:Label ui:field="northernLabel">I am far north</g:Label>
    </g:north>
    <g:center>
        <g:Label ui:field="centerLabel">Center Stage</g:Label>
    </g:center>
</g:DockLayoutPanel>

在视图初始化后运行的代码中,您现在可以执行以下操作:

myDockPanel.insertNorth(new Label("I am even farther north!"), 100.0, northernLabel);

另外,是否有任何官方文档可以搜索 Uibinder 命令,以便我可以知道我可以用于 uibinder 什么?

关于使用 UiBinder 进行声明式布局的Google 开发指南部分是官方的,AFAIK。

于 2012-10-05T19:05:40.900 回答