尝试这样的事情:
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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码的作用是:它创建一个ScrollPanel并向其添加一个ScrollHandler.在ScrollHandler中,将scrollheight与面板的高度进行比较,然后将另一个子项添加到面板中.
我没有测试它,因为我在上网本上写这个并且没有IDE.
我至少能够在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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
注意有趣的位是位置的计算.
| 归档时间: |
|
| 查看次数: |
8457 次 |
| 最近记录: |