2016-11-30 25 views
0

我有一個回收站視圖顯示一堆簡單的文字瀏覽,一些文字瀏覽旁邊有一個按鈕。RecyclerView與視圖模式臨時阻止回收滾動

點擊按鈕,我會在該特定文本視圖旁邊顯示進度條,並顯示簡單的媒體播放器進度。

現在,因爲我有一個回收站,當用戶在mediaplayer播放一些聲音和進度條動畫時滾動時,滾動回該項目將返回到它的原始形態。

有沒有辦法來標記項目作爲非循環暫時?還是必須設置一些狀態才能將回收的視圖返回到其播放視圖?

回答

0

不,您不能將某個項目標記爲非回收。適配器中的所有視圖都應該回收以獲得更好的性能。我應該說更好的表現。因爲不是創建100個視圖或1000個適配器,只會創建7〜8個或更多(取決於屏幕大小)。每當用戶滾動 - Recycler完成其工作。在你的情況下,你需要跟蹤所有的項目,比如保存某些數據結構中的每個項目的狀態以及所有的東西。

+0

我將僅具有示出在時間進度一個視圖。因此,將該特定視圖標記爲暫時不回收對性能沒有不利影響。但我想如果沒有任何API可以做,我將不得不以某種方式保存狀態.. – user1017674

+0

是的,確切地說。您需要保存'MediaPlayer'的狀態,稍後再運行此代碼。 'Mediaplayer.seekTo(length); Mediaplayer.start(); ' – nullbyte

0

或我周圍設置一些國家返回回收視圖返回到其播放視圖

我最好的選擇將是你單獨和一次保存每一項的狀態你viewholder被綁定,你把玩家放回原來的位置。確保您正確回收您的物品,並將其綁定,否則最終會導致一大堆視頻被設置爲錯誤的時間。

鑑於我們正在討論視頻加載,您可能還需要控制RecyclerView的滾動事件,並且只有在用戶停止移動時纔會啓動視頻,這樣您最有可能通過不做任何操作來提高性能不必要的緩衝。