如何循环访问Android RecyclerView中的项目?如何循环浏览Android RecyclerView中的项目?
我想要一个水平滚动的RecyclerView。当到达右端时,只需重新启动项目列表即可继续滚动。左边一样。
例如:
项目清单:0,1,2,3,4,5,6,7,8,9
开始视图显示:0,1,2,3 ,4,5,6,7
向后滚动5个项目向右:5,6,7,8,9,0,1,2
向左滚动2个项目后:8,9,0,1 ,2,3,4,5
如何循环访问Android RecyclerView中的项目?如何循环浏览Android RecyclerView中的项目?
我想要一个水平滚动的RecyclerView。当到达右端时,只需重新启动项目列表即可继续滚动。左边一样。
例如:
项目清单:0,1,2,3,4,5,6,7,8,9
开始视图显示:0,1,2,3 ,4,5,6,7
向后滚动5个项目向右:5,6,7,8,9,0,1,2
向左滚动2个项目后:8,9,0,1 ,2,3,4,5
另一个想法是,getItemCount()
适配器回报Integer.MAX_VALUE
,然后为了得到你的项目,你应该做的itemsList.get(position % list.size)
这样,当滚动超出您的实际列表大小从0开始再次显示最后一个
一件事做后面的列表的第一个元素可能是在LayoutManager
其中x % yourList.size() == 0
调用scrollToPosition(int x)
且x somwhere接近Integer.MAX_VALUE/2
这样滚动看起来像在每一个方向无限(约1个十亿位置从出发点开始)
正如在评论中指出的那样,如果列表大小为0,getItemCount
应该返回0.例如,
return list.size == 0 ? 0 : Integer.MAX_VALUE
我有个这样的想法
首先制作新的列表= 3x原始列表
original list: 0,1,2,3,4,5,6,7,8,9
new list : 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9
当第一次显示RecyclerView
时,您应该滚动RecyclerView
到正确的10个项目(10是原始列表的大小)。然后,如果用户向左或向右滚动少于10个项目,它将像圆圈一样工作。
和当他们到达右边或左边的末端时,您应该滚动RecyclerView
回到您第一次显示RecyclerView
的状态。 纠正我,如果我错了。感谢您的帮助
感谢您的建议,但我要去与一个@lelloman建议。它不需要存储太多的数据。 – studersi
延长'RecyclerView'像往常一样,覆盖在达到极限时检索下一个/前一个元素,并更新索引以零/最大值必要的方法..... –