2013-03-04 107 views
2

编辑GWT ScrollPanel中的TabPanel:无垂直滚动条

我已经通过调整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 

我的问题是如何在该TabPanelScrollPanel,这本身包含一个VerticalPanel包含几个小部件。对于TabPanel中的每个Tab都是如此。

我的问题是,虽然宽度的为SplitLayoutPanel$2的中心的所有容器具有100%的宽度,在ScrollPanel包含了相当大的白色区域水平滚动条旁边的VerticalPanel,而他们在绝对指标同样大小。

龙虎斗情况

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

这是TabPanel,与ScrollPanelVerticalPanel。请注意水平滚动条的存在方式,而TabPanel,ScrollPanelVerticalPanel的宽度相同。向右滚动会产生白色区域。

Scroll- and Vertical panel details

ScrollPanelVerticalPanel所有运动的598px的绝对宽度。 DockLayoutPanel的西部组件大小为600,因此可以匹配。另请注意,如何调出开发者控制台使滚动条消失。事实上,整个面板已经消失,没有垂直滚动条弹出。

Scrolled

当滚动条向右,则VerticalPanel被部分地置于关闭屏幕,并且显示ScrollPanel本空格。很明显,我不希望空白在那里,所以根本不需要滚动条。在这种情况下,所有面板仍然具有相同的宽度:598px。调整SplitLayoutPanel的大小,使用右边的边框可以增加这些值(显然),但面板的宽度仍然相同,空白的大小保持不变,但我预计它也会变得更宽。

第二个选项卡包含一段文字,该文字从屏幕上继续,但不出现滚动条。

问题结论

  • 没有垂直滚动条
  • 甲水平滚动条与一些神奇召唤空白
  • Compontents权利要求具有相等的宽度

任何帮助不胜感激。

EDIT

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

+1

您是否尝试过'TabLayoutPanel',而不是'TabPanel'? – 2013-03-04 12:23:50

+0

我刚试过,很惊讶地发现一个漂亮的垂直滚动条。它似乎是与TabPanel的东西。我也注意到(很久以前编写代码),它实际上是一个GXT选项卡面板,因为我没有提及... – 2013-03-04 13:45:33

回答

6

TabPanel(至少来自GWT本身)从内向外调整大小:其大小取决于所选标签的大小。所以,你的ScrollPanel将永远不会有一个垂直滚动条,除非你明确地给它的大小,你的内容实际上溢出SplitLayoutPanel你把TabPanel英寸

布局面板,如TabLayoutPanel,另一方面从外部手动调整大小:SplitLayoutPanel将在其中心区域设置TabLayoutPanel的大小,而TabLayoutPanel将依次设置ScrollPanel的大小,因此如果ScrollPanel的内容溢出,将出现垂直滚动条。

+0

感谢您的有用解释。将再次尝试这种知识,并回来。 – 2013-03-05 19:01:53

+0

显然,sencha的小部件需要在sencha窗口中才能正确处理(重新)大小。因此,我已经重写了几乎完整的用户界面,但是使用GWT的'TabLayoutPanel',因为GXT'TabPanel'不支持灵活的大小调整。感谢您提供您的解释! (这是我发现的有关GXT小部件和面板的地方:http://www.sencha.com/forum/showthread.php?243630-ToolBar-not-resizing-properly) – 2013-03-05 21:51:08

2

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

第二点:如果您想要适当调整大小和滚动条,请始终尝试提及百分比中的宽度和高度。

我看到您提到的宽度为100%。但是height呢?

我的建议对你来说,

变化TabPanelTabLayoutPanel

设置所有的面板高度在整个层次结构为100%