GWT ScrollPanel未显示完整内容

时间:2013-01-11 16:51:47

标签: gwt scroll

我使用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));

2 个答案:

答案 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和表。