2011-02-25 112 views
0

从橱窗演示,ShowMorePagerPanel,我能看到这条线CellList无限滚动

display.setVisibleRange(0, newPageSize); 

这是否每次我们滚动时的意思是,从0到max所有项目将继续反复检索和显示?我们如何才能使它只检索后续的新项目并使用缓存中的所有以前的旧项目(从0开始)?这可能吗?任何人都可以指导我吗?

回答

1

是的,display.setVisibleRange(0, newPageSize)将显示所有,直到达到最大值。那的确是ShowMorePagerPanel

的目的,你想要的东西,如果我理解正确的,你只需要像display.setVisibleRange(newPageSize - incrementSize, newPageSize)

不过,我想这会是一个奇怪的用户界面。如果您只需要一次显示X个元素,最好只使用一个带有X个可见元素的表格,然后在界面中添加一个带有“后退”和“下一个”按钮的导航栏以“滚动”。你可以在gwt Mail Application例子中看到这个例子。这个例子还说明了如何处理这可能比X元素少(简单地使反正行不可见的)最后的片

-

如果你还是想出去ShowMorePagerPanel,你可能需要修改它实现一个实际的寻呼机,也就是说,有一些机制只保留你现在正在显示的项目(处理滚动事件),也许还要保留这些项目前后的当前显示,以使滚动更顺畅。如果内存使用是一个问题,这很重要。

+0

如果我继续调用display.setVisibleRange(0,newPageSize),则表示我将获得与以前的调用相同的元素,而不是缓存。不,我不想像你建议的那样做页面分页。我喜欢做像twitter这样的界面。所以我的问题是无论如何缓存这些元素,而不是继续调用display.setVisibleRange(0,newPageSize) – cometta 2011-02-25 09:16:54

+0

“ - ”后面的最后一段回答你的问题;也关于BT不做的缓存。实际上_display.setVisibleRange(0,newPageSize)_只在用户向下滚动到当前限制时调用,当他向上滚动或在中间向下滚动时才会调用_display.setVisibleRange(0,newPageSize)。 – juanmirocks 2011-02-25 10:27:00