2010-09-23 102 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的選項卡的內容區域從位置改變:絕對到的位置是:相對的,但是這似乎是一個黑客位給我的和將來可能會斷裂。