GWT ScrollPanel未显示完整内容

GWT ScrollPanel未显示完整内容,gwt,scroll,Gwt,Scroll,我使用AbsolutPanel作为主面板。我将另一个AbsolutPanel作为标题添加到主面板。 现在我在主面板中添加了一个滚动面板。ScrollPanel包括另一个面板上的30个按钮。滚动时,最后一个按钮未完全显示 如果我移除收割台面板,所有内容都将显示-如果我增加收割台面板的高度,则显示的内容将减少。 ScrollPanel(包括VerticalPanel)的可滚动区域与ScrollPanel外部的页眉面板的高度完全相同。 如果我对主面板使用“Overflow.SCROLL”,我可以滚动到

我使用AbsolutPanel作为主面板。我将另一个AbsolutPanel作为标题添加到主面板。 现在我在主面板中添加了一个滚动面板。ScrollPanel包括另一个面板上的30个按钮。滚动时,最后一个按钮未完全显示

如果我移除收割台面板,所有内容都将显示-如果我增加收割台面板的高度,则显示的内容将减少。 ScrollPanel(包括VerticalPanel)的可滚动区域与ScrollPanel外部的页眉面板的高度完全相同。 如果我对主面板使用“Overflow.SCROLL”,我可以滚动到垂直面板的末尾,但在这种情况下,标题面板也会滚动

非常感谢您的帮助-谢谢

为了重现这个问题,我做了以下测试:

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));
AbsolutePanel main=新的AbsolutePanel();
RootLayoutPanel.get().add(主);
main.setSize(“100px”,“100%”);
AbsolutePanel标题=新AbsolutePanel();
main.add(表头);
标题。添加(新标签(“标题”);
VerticalPanel内容=新建VerticalPanel();
ScrollPanel scroll=新的ScrollPanel(内容);
滚动设置大小(“100px”,“100%”);
main.add(滚动);
对于(int i=0;i<30;i++)
添加(新按钮(“按钮:+i”);

您的VerticalPanel基于一个表,该表试图填满父容器的100%。不要认为你的裁员是个好办法。检查有关布局的信息


我建议您使用DockLayoutPanel创建带有标题的100%高度布局。如果要开始使用面板名称中带有[Layout]的面板,请不要使用VerticalPanel。他们是以Div为基础的。如果您不确定浏览器将如何处理div和tables,请务必不要将它们混合使用。

因为您使用的是绝对面板、垂直面板和滚动面板的组合,所以它们都不是布局面板。因此,您需要查看滚动面板的高度到某个确定的高度,而不是以百分比表示

更改代码

scroll.setSize("100px", "100%");


塔达,它可以工作,你会得到一个卷轴。

谢谢你的回答!我确实读过这篇文章,我试着只使用布局面板。最初的测试使用了AbsolutePanel而不是VerticalPanel,我有完全相同的。为什么要使用AbsolutePanel作为容器。当前浏览器行为完全正确。解决这个问题的唯一技巧是使用负css边距(页眉高度)进行滚动。也可以使用绝对位置。但最好允许使用gwt引擎。我现在使用DockLayoutPanel作为主面板,使用FlowPanel作为其余面板-这很好,而且与基于网格的组件相比,使用基于div的组件滚动大内容看起来要快得多。非常感谢你的回答!如果您从以下答案中找到了解决方案,请接受并投票表决答案。如果你有自己的答案,放下并接受它。这将帮助其他正在寻找类似问题答案的用户。
scroll.setSize("100px", "500px");