在DockLayoutPanel中嵌入TabLelayoutPanel

时间:2009-12-29 21:14:13

标签: gwt uibinder

我正在尝试在DockLayoutPanel中嵌入一个TabLayoutPanel但是标签没有显示出来:(

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'>
    <g:DockLayoutPanel unit='PX'>
        <g:north size='200'>
            <g:HTML>
                <h1>
                    My Header
      </h1>
            </g:HTML>
        </g:north>
        <g:center>

            <g:TabLayoutPanel barUnit='PX' barHeight='3'>
                <g:tab>
                    <g:header size='7'>
                        <b>HTML</b>
                        header
                    </g:header>
                    <g:Label>able</g:Label>
                </g:tab>
                <g:tab>
                    <g:customHeader size='7'>
                        <g:Label>Custom header</g:Label>
                    </g:customHeader>
                    <g:Label>baker</g:Label>
                </g:tab>
            </g:TabLayoutPanel>



        </g:center>
        <g:west size='192'>
            <g:HTML>
                <ul>
                    <li>Sidebar</li>
                    <li>Sidebar</li>
                    <li>Sidebar</li>
                </ul>
            </g:HTML>
        </g:west>
    </g:DockLayoutPanel>
</ui:UiBinder>

4 个答案:

答案 0 :(得分:4)

如果您什么都没看到,请确保TabLayoutPanel(a)具有明确的大小,或者(b)最终附加到RootLayoutPanel(有关详细信息,请参阅http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#Resize)。

如果问题是标签上缺少样式(即,您只是看到标签应该是原始文本),则需要添加一些样式(您需要的CSS规则在TabLayoutPanel的javadoc)。 TabLayoutPanel还没有任何默认样式,但我们很快就会添加一些。

答案 1 :(得分:2)

来自JavaDoc的示例有点误导 - 条形高度为3将隐藏标签标题,并且需要为正文指定高度。使用类似的东西:

<g:TabLayoutPanel barUnit='PX' barHeight='25' height="200px" >

<ui:style>
.tab {
    height: 200px;
}

<g:TabLayoutPanel barUnit='PX' barHeight='25' styleName="{style.tab}" >

此外,您还可以在以下问题的评论#5中找到TabLayoutPanel的基本CSS样式:

http://code.google.com/p/google-web-toolkit/issues/detail?id=4429

答案 2 :(得分:0)

我使用新的TabLayoutPanel也遇到了同样的问题(即使页面上唯一的内容,标签也不显示)。我决定回到使用(现已弃用)TabPanel。试着看看是否有效:

示例代码:

<g:TabPanel width="100%" height="100%" ui:field="gwtimeTabPanel">
    <g:Tab>
    <g:TabHTML>Tab title</g:TabHTML>
    <g:FlowPanel>
            <!-- tab contents goes here -->
        </g:FlowPanel>
    </g:Tab>
</g:TabPanel>

答案 3 :(得分:0)

主要使用Java代码定义UI的人。


<强> Explenation


您应该设置TabLayoutPanel和TabLayoutPanel本身的父面板的大小。例如,我有一个VerticalPanel和一个TabLayoutPanel,我将这个TabLayoutPanel添加到VerticalPanel(这使它成为TabLayoutPanel的父面板),如下所示:

veticalPanel.add(tabLayoutPanel); 
RootPanel.get().add(verticalPanel);

什么都没做......


<强>答案


您应该声明面板的大小 ,就像这样

//set size
vertialPanel.setSize("100%","100%");
tabLayoutPanel.setSize("100%","100%")
RootPanel.get().add(verticalPanel);