gwt ScrollPanel in TabPanel: no vertical scrollbar

烂漫一生 提交于 2019-12-10 20:18:08

问题


EDIT

I have fixed the whitespace behaviour by resizing components within the VerticalPanel, that seem to have had an effect on the panel's dimension somehow missed by the console. I don't quite understand how.

However, I am still stuck with none of my panels showing vertical scroll bars.

In a GWT project, I have the following structure:

Page

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

Body

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

My problems are with the ScrollPanel in the TabPanel, which in itself contains a VerticalPanel containing several widgets. This is true for each Tab in the TabPanel.

My problem is that, while the width's for all containers in SplitLayoutPanel$2's center have 100% width, the ScrollPanel contains a horizontal scrollbar with a considerable white area next to it's VerticalPanel, while they are in absolute metrics the same size.

Illustrating the situation

This is the TabPanel, with ScrollPanel, and VerticalPanel. Notice how the horizontal scrollbar exists, while the TabPanel, ScrollPanel and VerticalPanel have the same width. Scrolling to the right yields a white area.

The ScrollPanel and VerticalPanel all sport an absolute width of 598px. The West component of the DockLayoutPanel has a size of 600, so that matches. Also notice how bringing up the developer console has made the scrollbar disappear. In fact, the entire panel has disappeared behind it, and no vertical scrollbar pops up.

When scrolling the bar to the right, the VerticalPanel gets partially placed off screen, and the ScrollPanel shows this whitespace. Obviously, I don't want the whitespace to be there, so there won't be need for a scrollbar at all. All panels in this situation still have the same width: 598px. Resizing the SplitLayoutPanel, using the border to the right, increases these values (obviously), but the panels do still share equal width and the whitespace remains the same size, while I'd expect it to get wider too.

The second tab contains a load of text, which continues off the screen, but no scrollbars appear.

Problem conclusion

  • No vertical scrollbars
  • A horizontal scrollbar with some magically summoned whitespace
  • Compontents claim to have equal width

Any help is greatly appreciated.

EDIT

Have tried resizing the VerticalPanel to 90 or 80% width. The whitespace seems unaffected and it shows that 100% really covers the visible width and not more.


回答1:


TabPanel (at least the one from GWT proper) resizes from the inside-out: its size varies depending on the size of the selected tab. So your ScrollPanel will never have a vertical scrollbar unless you explicitly give it a size, and your content is actually overflowing the layer of the SplitLayoutPanel you put the TabPanel in.

Layout panels, such as TabLayoutPanel, on the other hand resize from the outside-in: the SplitLayoutPanel would set the size of the TabLayoutPanel in its center region, and the TabLayoutPanel would in turn set the size of the ScrollPanel, so if the content of the ScrollPanel overflows, a vertical scrollbar appears.




回答2:


First Point : Don't mix and match layout panels and non - layout panels.

Second Point : If you want proper resizing and scrollbars, always try to mention width and height in percentages.

I see that you have mentioned width to be 100%. But what about the height?

What I suggest for you is,

Change TabPanel to TabLayoutPanel

Set all the panels height throughout the heirarchy as 100%



来源:https://stackoverflow.com/questions/15200138/gwt-scrollpanel-in-tabpanel-no-vertical-scrollbar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!