我使用AbsolutPanel作为主面板。我将另一个AbsolutPanel添加为主面板的标题。 现在我将ScrollPanel添加到主面板。 ScrollPanel在另一个面板上包含30个按钮。滚动时,最后一个按钮未完全显示。
如果我删除标题AbsolutPanel,则显示所有内容 - 如果我增加标题面板的高度,则显示更少。 包含VerticalPanel的ScrollPanel的可滚动区域与ScrollPanel外部的标题面板的高位完全相同。 如果我使用" Overflow.SCROLL"对于主面板,我可以滚动到verticalPanel的末尾,但在这种情况下滚动页眉面板。
非常感谢每一位帮助 - 谢谢!
为了重现这个问题,我做了以下测试:
AbsolutePanel main = new AbsolutePanel();
RootLayoutPanel.get().add(main);
main.setSize("100px", "100%");
AbsolutePanel header = new AbsolutePanel();
main.add(header);
header.add(new Label("HEADER"));
VerticalPanel content = new VerticalPanel();
ScrollPanel scroll = new ScrollPanel(content);
scroll.setSize("100px", "100%");
main.add(scroll);
for (int i = 0; i < 30; i++)
content.add(new Button("Button :" + i));
答案 0 :(得分:5)
由于您使用的是绝对面板,垂直面板和滚动面板的组合,因此它们都不是布局面板。因此,您需要将滚动面板的高度看到某个确定的高度,而不是按百分比给出。
更改您的代码
scroll.setSize("100px", "100%");
到
scroll.setSize("100px", "500px");
TADA,它有效并且你得到一个卷轴。
答案 1 :(得分:0)
您的VerticalPanel基于一个试图填充100%父容器的表。不要认为你的布局是一个好方法。检查https://developers.google.com/web-toolkit/doc/latest/DevGuideUiPanels有关布局的信息。
我建议您使用DockLayoutPanel创建带标题的100%高度布局。如果您开始在面板名称中使用[Layout]面板,请不要使用VerticalPanel。他们是以Div为基础的。如果你不确定浏览器将如何处理它,重要的是不要混合div和表。