0

所有,我想要一个位于我的主 ScrollPanel 中的选项卡菜单窗格。每次用户从我的主页单击菜单选项时,中心 ScrollPanel 都会删除之前存在的任何 widgit 并添加一个新的。

到目前为止,它工作得很好,直到我引入了 TabLayoutPanel。正如您猜到的那样,TabLayout 仅显示选项卡,而不显示没有大小的内容,是的,我希望它具有 100% 的宽度和高度。

我在整个互联网上都看到了这一点,解决方案是将它附加到 RoolLayoutPanel,因为 TabLayoutPanel 设置为绝对,但这对我不起作用,因为我不想将它附加到根布局而不是这个内部客户区域/滚动面板。

我想要的只是一个选项卡式系统,所以如果 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(..)

任何帮助将不胜感激,谢谢

4

2 回答 2

0

我的解决方案:

  1. 使用RootLayoutPanel而不是RootPanel

    public void onModuleLoad() {
        binwebtabs bwt = new binwebtabs();
        //RootPanel.get("mainpage").add(bwt);
    
        RootLayoutPanel rp = RootLayoutPanel.get();
        rp.add(bwt);
    }
    
  2. g:LayoutPanel在 uibinder XML 的根目录下使用,然后你可以添加任何小部件(例如标签)和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不必位于根目录。

于 2012-09-25T16:30:58.357 回答
0

我不确定我是否明白你在做什么。但是使用 DeckLayoutPanel 怎么样?DeckLayoutPanel 拥有一个带有多个小部件的“甲板”,并一次显示其中一个。您甚至可以在过渡时使用滑动动画。

http://google-web-toolkit.googlecode.com/svn/javadoc/2.3/com/google/gwt/user/client/ui/DeckLayoutPanel.html

于 2011-05-25T09:52:51.977 回答