TabPanel中的gwt ScrollPanel:没有垂直滚动条

时间:2013-03-04 11:08:30

标签: css gwt scroll uibinder

修改

我通过调整VerticalPanel中的组件来修复空白行为,这些组件似乎对控制台错过了面板的维度产生了影响。我不太明白。

但是,我仍然没有看到任何显示垂直滚动条的面板。

在GWT项目中,我有以下结构:

网页

DockLayoutPanel
    North (header)
    Center (body)
    South (footer)
/DockLayoutPanel

车身

SplitLayoutPanel$1
    West
        SplitLayoutPanel$2
             North
             Center
                 TabPanel
                     ScrollPanel
                         VerticalPanel
                             -Several widgets-
                         /VerticalPanel
                     /ScrollPanel
                 /TabPanel
             /Center
        /SplitLayoutPanel$2
    /West
    Center
/SplitLayoutPanel$1

我的问题与ScrollPanel中的TabPanel有关,VerticalPanel本身包含一个包含多个小部件的Tab。对TabPanel中的每个SplitLayoutPanel$2都是如此。

我的问题是,虽然ScrollPanel中心的所有容器的宽度都有100%的宽度,但VerticalPanel包含一个水平滚动条,旁边有一个相当大的白色区域{{1} },虽然它们的绝对指标大小相同。

说明情况

overview of the TabPanel http://i48.tinypic.com/1fu448.png

这是TabPanelScrollPanelVerticalPanel。注意水平滚动条是如何存在的,而TabPanelScrollPanelVerticalPanel具有相同的宽度。向右滚动会产生白色区域。

Scroll- and Vertical panel details

ScrollPanelVerticalPanel的绝对宽度均为598像素。 DockLayoutPanel的West组件大小为600,因此匹配。还要注意如何启动开发人员控制台使滚动条消失。实际上,整个面板已经消失在其后面,并且没有垂直滚动条弹出。

Scrolled

向右滚动条形图时,VerticalPanel部分放置在屏幕外,ScrollPanel显示此空白区域。显然,我不希望空白存在,因此根本不需要滚动条。在这种情况下,所有面板仍具有相同的宽度:598px。使用右边框调整SplitLayoutPanel的大小会增加这些值(显然),但是面板仍然具有相同的宽度,并且空格保持相同的大小,而我希望它也会变得更宽。 / p>

第二个标签包含一大堆文字,它会在屏幕上显示,但不会显示滚动条。

问题结论

  • 没有垂直滚动条
  • 一个水平滚动条,带有一些神奇的召唤空白
  • 组件声称宽度相等

非常感谢任何帮助。

修改

尝试将VerticalPanel的大小调整为90或80%宽度。空白似乎没有受到影响,它表明100%确实覆盖了可见宽度而不是更多。

2 个答案:

答案 0 :(得分:6)

TabPanel(至少是来自GWT的那个)从内到外调整大小:其大小取决于所选标签的大小。因此,除非您明确指定大小,否则您的ScrollPanel将永远不会有垂直滚动条,并且您的内容实际上溢出了您放置SplitLayoutPanel TabPanel图层 in。

另一方面,

布局面板(例如TabLayoutPanel)会从外向内调整:SplitLayoutPanel会在其中心区域设置TabLayoutPanel的大小,而{ {1}}会依次设置TabLayoutPanel的大小,因此如果ScrollPanel的内容溢出,则会出现垂直滚动条。

答案 1 :(得分:2)

第一点:不要混淆和匹配布局面板和非布局面板。

第二点:如果您想要正确调整大小和滚动条,请始终尝试以百分比表示宽度和高度。

我看到你提到宽度为100%。但是height

呢?

我建议你的是,

TabPanel更改为TabLayoutPanel

将整个层面的所有面板高度设置为100%