2010-10-28 165 views
0

全部, 我想要一個位於我的主ScrollPanel內的標籤菜單窗格。每次用戶點擊我主頁上的菜單選項時,中心ScrollPanel會刪除之前的任何widgit,並添加一個新的。Inner TabLayoutPanel內容不可見

到目前爲止,它的工作很好,直到我引入TabLayoutPanel。正如你猜測的那樣,TabLayout只顯示標籤,而不是沒有尺寸的內容,是的,我希望它在100%的寬度和高度。

我見過遍佈interweb和解決方案是將它連接到RoolLayoutPanel,因爲TabLayoutPanel設置爲絕對但不起作用,因爲我不想將它附加到根佈局,而不是這個內部客戶端區域/ ScrollPanel。

我想要的是一個標籤式系統,所以如果TabLayoutPanel不是最好的選擇,那麼有沒有人推薦另一個?我在標準模式,因爲我認爲我應該建立反對此更好的瀏覽器兼容性。

這是我的頁面結構:

RootLayoutPanel rootPanel = RootLayoutPanel.get(); 
rootPanel.setSize("940px", "940px"); 

mainpanel = new FlowPanel(); 
mainpanel.setSize("100%", "100%"); 
rootPanel.add(mainpanel); 

header = new FlowPanel(); 
mainpanel.add(header); 

ScrollPanel mainbody = new ScrollPanel(); 
mainpanel.add(mainbody); 

footer = new FlowPanel(); 
mainpanel.add(footer); 

,每當我想換型主體的內容我打電話:

mainbody.clear() 
mainbody.add(..) 

任何幫助,將不勝感激,謝謝

回答

0

我的解決辦法:在UiBinder的XML的根

  1. 使用RootPanelRootLayoutPanel代替

    public void onModuleLoad() { 
        binwebtabs bwt = new binwebtabs(); 
        //RootPanel.get("mainpage").add(bwt); 
    
        RootLayoutPanel rp = RootLayoutPanel.get(); 
        rp.add(bwt); 
    } 
    
  2. 使用g:LayoutPanel,那麼在哪裏添加任何小部件(如標籤)和g:TabLayoutPanel單獨g:layer

    <g:LayoutPanel> 
    <g:layer> 
        <g:Label>Bin Web </g:Label> 
    </g:layer> 
    <g:layer> 
    <g:TabLayoutPanel ui:field="tabLayoutPanel" barUnit="PX" barHeight="60"> 
    ... 
    </g:TabLayoutPanel> 
    

這樣,g:TabLayoutPanel內容可見,並且g:TabLayoutPanel犯規在根有砥。