通过无限滚动,我的意思是我最初加载一些子窗口小部件,并且当用户向下滚动时,可以加载更多以填充它。
任何想法都赞赏。
(理想情况下,想要GWT 1.6和1.5的东西)
答案 0 :(得分:8)
尝试这样的事情:
public static class InfiniteScrollPanel implements ScrollHandler {
String text = "Lorem ipsum dolor sit amet, consectetuer...";
ScrollPanel panel = new ScrollPanel(new HTML(text));
int height = 200;
int width = 200;
public InfiniteScrollPanel() {
panel.setHeight(height);
panel.setWidth(width);
panel.addScrollHandler(this);
}
public void onScroll(ScrollEvent event) {
if (panel.getScrollPosition == height) {
panel.add(new HTML(text));
}
}
}
此代码的作用:它创建一个ScrollPanel并向其添加ScrollHandler。在ScrollHandler中,将scrollheight与面板的高度进行比较,然后将另一个子项添加到面板中。
我没有对它进行测试,因为我在上网本上写这个并且没有IDE。
答案 1 :(得分:6)
我至少能够在GWT 1.5中确认以下工作:
final VerticalPanel vp = new VerticalPanel();
for (int i = 0; i < 40; i++) {
vp.add(new HTML("Oh oh"));
}
final HTML f = new HTML("END");
vp.add(f);
final ScrollPanel panel = new ScrollPanel(vp);
panel.setHeight("20em");
panel.addScrollListener(new ScrollListener() {
HTML end = f;
public void onScroll(Widget widget, int scrollLeft, int scrollTop) {
int finalPos = end.getAbsoluteTop() + end.getOffsetHeight();
int panelPos = panel.getAbsoluteTop() + panel.getOffsetHeight();
if (finalPos == panelPos) {
end = new HTML("MORE !!");
vp.add(end);
}
}
});
注意有趣的位是位置的计算。