按钮单击后TabLayoutPanel选项卡不显示

时间:2013-05-17 20:06:25

标签: gwt gwt-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而没有任何运气。

我正在尝试做什么本质上是错误的?有没有人看到我的代码有问题?任何人都可以建议如何调试这个?

1 个答案:

答案 0 :(得分: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连接/分离的顺序。