簡體   English   中英

具有Viewholder模式的RecyclerView暫時阻止滾動回收

[英]RecyclerView with viewholder pattern temporarily prevent recycle on scroll

我有一個回收者視圖,其中顯示了一堆簡單的textview,有些textview旁邊有一個按鈕。

單擊按鈕時,我會在特定的textview旁邊顯示一個進度條,並顯示一個簡單的媒體播放器進度。

現在,由於我有一個回收站,當媒體播放器正在播放聲音和進度條動畫時,當用戶滾動時,回滾到該項目會將其恢復為原始狀態。

有沒有辦法暫時將商品標記為不可回收? 還是我必須圍繞一些狀態將回收的視圖返回到其播放視圖?

不,您不能將項目標記為不可回收,適配器中的所有視圖都應回收才能獲得更好的性能。 我應該說性能要好得多。 因為適配器只能創建7〜8個或更多(而不是創建100個視圖或1000個視圖)(取決於屏幕大小)。 每當用戶滾動時, Recycler執行其工作。 在您的情況下,您需要跟蹤所有項目,例如將每個項目的狀態保存在某些數據結構中以及所有這些內容中。

還是我必須設置一些狀態以將回收的視圖返回到其播放視圖

最好的選擇是讓您分別保存每個項目的狀態,一旦綁定了視口,就將播放器設置回原處。 確保正確回收您的項目並進行相應的綁定,否則最終會導致一堆視頻被設置為錯誤的時間。

鑒於我們正在談論視頻加載,您可能還希望控制RecyclerView的滾動事件,並僅在用戶停止移動后才啟動視頻,這樣,您很可能會通過不做任何不必要的緩沖來提高性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM