我想创建一个占据整个浏览器客户端区域的 TabPanel,并在其中放置一个可以在必要时滚动的 FlexTable。但是,我很难实现这一点。我试过了:

public void onModuleLoad() {
    TabPanel test = new TabPanel();
    test.setSize("100%", "100%");

    FlexTable flex = new FlexTable();
    for (int i = 0; i < 100; i++)
        flex.setText(i, 0, "test " + i);

    test.add(flex, "tab");
    flex.setStyleName("overflow-auto");

    test.selectTab(0);
    RootPanel.get().add(test);
    }

其中,overflow-auto 定义为:

.overflow-auto {
    overflow: auto;
}

尽管选项卡面板正确地占据了 100% 宽度,但它最终会将其高度缩放到内部 FlexTable,而不是在其上强制滚动条。如何使选项卡面板的客户区域与其子面板的大小无关?

有帮助吗?

解决方案 2

它看起来像GWT 2.0有一个新的布局系统,它应该做的,我想:的 http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#LayoutPanels

其他提示

您可能会需要使用ScrollPanel该选项卡里面得到你想要的效果。一个ScrollPanel是一个容器,它只是需要一个Widget,如果需要把一个滚动条就可以了。我要指出的是,ScrollPanel呢,据我所知,依靠设置在其上的明确的大小,否则会很乐意与你把它的内容展开。

一个警告,但是:有与任何种类一个的TabPanel的内部滚动的面板的长期缺陷。最后我已经看到它仍然是开放的。

http://code.google.com / p /谷歌的web的工具包/问题/细节?ID = 1343

我想你会被这里寻找解决的办法是把FlexTable到像一个VerticalPanel一些其它容器板(可能是SimplePanel就足够了),然后将其写入一个ScrollPanel最后推的是进入的TabPanel。

正如我指出的,虽然,一个ScrollPanel需要你手动管理它的高度。所以,如果你想让它保持窗口的高度,这是怎么回事写一些代码,检查浏览器尺寸,计算出的ScrollPanel多高必须涉及。你需要一个调整大小处理程序附加到窗口,以及赶上尺寸并修复的东西呢。

至少,这与避免对事物的浏览器滚动条,我现在看到的情况。如果我错了,任何人,请让我知道,因为我有代码删除......

对我有用的类似于 bikesandcode 写的:

  1. 创建 FlexPanel
  2. 创建 ScrollPanel 并将 FlexPanel 添加到其中
  3. 设置 ScrollPanel 所需的大小(使用绝对 CSS 单位)
  4. 创建一个 SimplePanel 并向其中添加 ScrollPanel
  5. 将 SimplePanel 添加到 TabPanel

这个问题实际上是,当将它设置为一个子选项卡表被设定为100%的宽度/高度。如果你这样做溢出,汽车已经没有更多的意义,因为你让柔性表是100%(其内容)。

溢出只有如果设置使用像素的宽度/高度的工作原理。

我使用 Horizo​​ntalPanel(由 gxt 提供)作为 FlexTable 的父级并使用 setAutoHeight(true) 方法。这工作正常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top