如何循環訪問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'像往常一樣,覆蓋在達到極限時檢索下一個/前一個元素,並更新索引以零/最大值必要的方法..... –