2013-05-17 37 views
2

我試圖使用TabLayoutPanel它似乎工作正常,當它是我在頁面上放置的第一件事,但當我按下按鈕後(例如)它執行它沒有正確顯示。例如,如果我這樣做,它工作正常:TabLayoutPanel選項卡按鈕單擊後不顯示

TabLayoutPanel tlp = new TabLayoutPanel(2.5, Style.Unit.EM); 

tlp.add(new HTML("Tab1"), "Tab 1 title"); 
tlp.add(new HTML("Tab2"), "Tab 2 title"); 
tlp.add(new HTML("Tab3"), "Tab 3 title"); 
tlp.setPixelSize(500, 400); 

RootLayoutPanel.get().add(tlp); 

但是,如果我這樣做以下,當我點擊按鈕,我看到的顯示是「TAB1」,沒有其他標籤,沒有「標籤1標題「等:

HorizontalPanel hp = new HorizontalPanel(); 
Button btn = new Button("push"); 
TabLayoutPanel tlp = new TabLayoutPanel(2.5, Style.Unit.EM); 

hp.add(btn); 
tlp.add(new HTML("Tab1"), "Tab 1 title"); 
tlp.add(new HTML("Tab2"), "Tab 2 title"); 
tlp.add(new HTML("Tab3"), "Tab 3 title"); 
tlp.setPixelSize(500, 400); 

RootLayoutPanel.get().add(tlp); 

btn.addClickHandler(new ClickHandler() { 
    public void onClick(ClickEvent event) { 

     RootLayoutPanel.get().remove(hp); 
     RootLayoutPanel.get().add(tlp); 
    } 
}); 

任何想法?我在某處讀到IE8中存在TabLayoutPanel問題,但是由於它在第一種情況下顯示正常,我懷疑這是問題所在。我想知道Chrome和Firefox會發生什麼,但花了幾個小時努力在這些瀏覽器上安裝GWT Developer Plugin,但沒有任何運氣。

我想要做的事情有什麼內在的錯誤嗎?有人看到我的代碼有問題嗎?任何人都可以建議如何調試?

+0

我最終使用了一個TabPanel來代替,並解決了我的問題。我仍然不確定爲什麼TabLayoutPanel不起作用。 – mgcl

回答

0

你的第二個問題,落實解決辦法是以下幾點:

final HorizontalPanel hp = new HorizontalPanel(); 
    Button btn = new Button("push"); 
    final TabLayoutPanel tlp = new TabLayoutPanel(2.5,Style.Unit.EM); 

    hp.add(btn); 
    tlp.add(new HTML("Tab1"), "Tab 1 title"); 
    tlp.add(new HTML("Tab2"), "Tab 2 title"); 
    tlp.add(new HTML("Tab3"), "Tab 3 title"); 
    tlp.setPixelSize(500, 400); 

    RootLayoutPanel.get().add(hp); 

    btn.addClickHandler(new ClickHandler(){ 

     @Override 
     public void onClick(ClickEvent event) { 

      RootLayoutPanel.get().remove(hp); 
      RootLayoutPanel.get().add(tlp);    
     } 

    }); 

你的錯誤是在你從RootLayoutPanel安裝/拆卸的小部件/順序。

+0

在Chrome 33.0,Firefox 24.0上測試 – plopd