無限スクロールでは、最初にいくつかの子ウィジェットを読み込み、ユーザーが遅くスクロールしてそれを埋めるためにもっと遅くロードすることを意味します。GWTを使用して無限のスクロールパネルを作成するにはどうすればよいですか?
感謝しています。
無限スクロールでは、最初にいくつかの子ウィジェットを読み込み、ユーザーが遅くスクロールしてそれを埋めるためにもっと遅くロードすることを意味します。GWTを使用して無限のスクロールパネルを作成するにはどうすればよいですか?
感謝しています。
私は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);
}
}
});
は興味深いビットが位置の計算であることに注意してください。
はこのような何かを試してみてください(理想的にGWT 1.6と1.5のために何かをしたいと思います):
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では、スクロール高さがパネルの高さと比較され、パネルに別の子が追加されます。
私はネットブックでこれを書いているので、テストしていないし、IDEを持っていない。
おかげさまでクリス - 私はこのトリックは今、高さに、いつ物事をパネルに追加するのかと推測しています。 –
高さがわからない場合は、getOffsetHeightを呼び出すことができます装飾(ボーダー、マージン、パディング) –