3

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

GWT TabLayoutPanel 具有这些用于定义选项卡内容的“特殊”标签:

<g:TabLayoutPanel>
    <g:tab>
        <g:header>Tab Title</g:header>
        <g:OtherWidget>Tab contents</g:OtherWidget>
    </g:tab>
</g:TabLayoutPanel>

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

4

2 回答 2

5

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

@UiChild public void addTabDef(Widget page, String title) {...}

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

<v:tabdef title="Tab one"><g:Label>Page one.</g:Label></v:tabdef>

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

于 2011-03-08T07:03:25.193 回答
1

要为您的小部件使用自定义标签,<g:tab><g:header>需要创建自定义 ElementParse 并将其注册到 UiBinderWriter。不幸的是,在不编辑 gwt 的源代码的情况下,还没有简单的方法可以做到这一点。

有用的链接:

无法创建自定义 ElementParser 问题的链接

TabLayoutPanelParser

于 2010-09-02T21:15:26.920 回答