总重量:在全屏 TabPanel 中创建可滚动的 FlexTable
题
我想创建一个占据整个浏览器客户端区域的 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 写的:
- 创建 FlexPanel
- 创建 ScrollPanel 并将 FlexPanel 添加到其中
- 设置 ScrollPanel 所需的大小(使用绝对 CSS 单位)
- 创建一个 SimplePanel 并向其中添加 ScrollPanel
- 将 SimplePanel 添加到 TabPanel
这个问题实际上是,当将它设置为一个子选项卡表被设定为100%的宽度/高度。如果你这样做溢出,汽车已经没有更多的意义,因为你让柔性表是100%(其内容)。
溢出只有如果设置使用像素的宽度/高度的工作原理。
我使用 HorizontalPanel(由 gxt 提供)作为 FlexTable 的父级并使用 setAutoHeight(true) 方法。这工作正常。