gpt4 book ai didi

java - GWT 无限滚动并丢弃列表开始结果

转载 作者:行者123 更新时间:2023-11-28 19:35:35 25 4
gpt4 key购买 nike

寻找一个实现无限滚动的 GWT DataGrid 组件,但也要确保丢弃屏幕上不再可见的结果:例如以前加载的结果不再显示。

这是为了避免内存占用。我一直试图在谷歌上找到这个,但到目前为止还没有成功。请注意:我可以采用 JS 库并根据我的需要进行调整,但我认为它不能与 GWT 的 DataGrid 组件配合良好。

编辑:我对无限滚动特别感兴趣,它还会丢弃/释放不可见的最上面的结果(并根据需要加载它们)。

有什么想法吗?

最佳答案

事实上 showcase example有一个无限滚动的CellList。 (您可以在那里找到代码)。
尽管这是通过 CellList 完成的,但相同的原则也应适用于 DataGrid
查看 ShowMorePagerPanel.java 文件。

更新:
ShowMorePagerPanel.java 的 onScroll 函数将在底部添加新记录。但是您可以轻松更改行为:

大致的内容(未经严格测试):

HasRows display = getDisplay();
if (display == null) {
return;
}
boolean loadData = false;
// If scrolling up, change newStart
int oldScrollPos = lastScrollPos;
lastScrollPos = scrollable.getVerticalScrollPosition();
// get the current visible Range
Range currentRange = display.getVisibleRange();
if (oldScrollPos >= lastScrollPos) {
int newStart = Math.max(
currentRange.getStart() - incrementSize,0);
loadData = true;
}

int maxScrollTop = scrollable.getWidget().getOffsetHeight()
- scrollable.getOffsetHeight();
if (lastScrollPos >= maxScrollTop) {
// We are near the end, so increase the page size.
int newPageSize = Math.min(
display.getVisibleRange().getLength() + incrementSize,
display.getRowCount());
loadData = true;
}
if (loadData) {
display.setVisibleRange(newStart, newPageSize);
}

关于java - GWT 无限滚动并丢弃列表开始结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25972758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com