复制GWT的TabLayoutPanel的<g:tab>元素

Mat*_*nik 3 gwt uibinder

我发现GWT选项卡面板对于我需要做的样式很笨拙,所以我正在尝试制作我自己的简单选项卡面板.基本上是<nav>标签的HTML5 元素和DeckPanel显示内容的a.让我们用CSS3来解决剩下的问题.

GWT TabLayoutPanel具有这些"特殊"标记,用于定义选项卡的内容:

<g:TabLayoutPanel>
    <g:tab>
        <g:header>Tab Title</g:header>
        <g:OtherWidget>Tab contents</g:OtherWidget>
    </g:tab>
</g:TabLayoutPanel>
Run Code Online (Sandbox Code Playgroud)

我指的是<g:tab><g:header>.我看到在各个地方使用这些类型的标签,但我不知道如何创建它们.查看TabLayoutPanel源代码,我发现它有一个add方法需要两个小部件,然后它将一个小部件(内容)放入一个面板进行显示,将另一个小部件(标题)放入一个TabLayoutPanel.Tab实例中.但我不知道如何复制这种功能.

z0r*_*z0r 5

在GWT 2.1中有UiChild属性.这很酷.

@UiChild public void addTabDef(Widget page, String title) {...}
Run Code Online (Sandbox Code Playgroud)

title参数将在tabdef标记中填充相同名称的属性,如下所示:

<v:tabdef title="Tab one"><g:Label>Page one.</g:Label></v:tabdef>
Run Code Online (Sandbox Code Playgroud)

编辑:要清楚,tabdef不要在任何地方定义为类; 解析期间所需的行为由UiChild属性定义.