2010-09-23 98 views
3

我具有类似于以下GWT TabLayoutPanel不呈现图形内容

<g:TabLayoutPanel ui:field="rightTabPanel" 
      width="100%" height="100%" 
        barUnit="EM" barHeight="3"> 
    <g:tab> 
      <g:header>Graph</g:header> 
        <g:FlowPanel ui:field="graphContent"/> 
    </g:tab> 
     <g:tab> 
      <g:header>Data</g:header> 
         <g:FlowPanel ui:field="dataContent"/> 
    </g:tab> 
</g:TabLayoutPanel> 

I的结构有两个突出部在其上的显示图形和另一个显示数据 。但是,标签内的内容不可见。如果我把TabLayoutPanel的

<g:FlowPanel ui:field="graphContent"/> 

之外,我可以看到 图,但如果我把作为图形上面显示是不可见的。 任何线索都会有所帮助。 在此先感谢。

+0

你选择了一个标签? – flash 2010-09-23 10:03:27

+0

是的。我也这样做了。然而,我正在尝试的是让图形在一开始就呈现出来。如果它在TabLayoutPanel之外,它会呈现。 – lalit 2010-09-23 10:13:23

回答

5

我不知道它是否有帮助,但也许尝试使用<g:TabPanel>而不是<g:TabLayoutPanel>。我知道它已被弃用。

我也有问题与TabLayoutPanel,但他们都不见了,当我切换回TabPanel。 TabLayoutPanel有一些尺寸问题,例如不能放在div中,它必须“拥有”整个窗口,所以它与TabPanel完全不同。

+0

TabPanel的确帮了忙。感谢那。 – lalit 2010-09-24 04:40:01

+0

太好了!您可以随时给予好评我的答案,甚至将其标记为正确的:) – amorfis 2010-09-24 09:46:53

9

为了TabLayoutPanel正常工作,你需要确保以下几点:

1)你在标准模式(使用< DOCTYPE HTML >)
2)您使用的一个!来自GWT 2.0的新布局面板适用于TabLayoutPanel的父级。

您明确指定TabLayoutPanel的高度(并且百分比不起作用,您将不得不使用不同的单位)。

TabLayoutPanel根据其* Layout容器的大小使用绝对定位。它不会自动填充普通父元素(如“div”)的空间。 所以,希望你可以简单地切换到使用其中一个* LayoutPanel作为父级(比如DockLayoutPanel)。

如果使用* LayoutPanel不是一个选项:由于的TabPanel不标准模式下工作(这确实需要使用,如果你想成为跨浏览器兼容)和TabLayoutPanel不起作用以及流体布局,我最终做出了我自己的TabPanel版本,并用它来代替。如果您习惯于制作自己的自定义小部件,并且无法使用其中一个* LayoutPanel,我建议您自己制作或扩展其中一个现有小部件。

或者,你可以使用CSS或JavaScript的选项卡的内容区域从位置改变:绝对到的位置是:相对的,但是这似乎是一个黑客位给我的和将来可能会断裂。