3

我有被重用視圖中的回收來看,我的問題是,一個viewholder包含ViewPager和,如果recyclerview的適配器重用,其中viewholder充氣則認爲發生在一個異常觀看者。 但是,onCreateViewHolder方法僅在第一次調用。我怎樣才能避免這種行爲,並實現onCreateViewHolder可以被多次調用?不回收特定視圖類型RecyclerView

在此先感謝

+3

*避免在recyclerview再利用項目* ==避免**在RecyclerView來看**回收...那麼,爲什麼使用RecyclerView呢? – Selvin

+0

現在認真......爲什麼你不回到這裏,以你正在面臨的代碼和異常的最小例子?是不是更好使用RecyclerView並修復錯誤? – Selvin

回答

8

使用recyclerView.getRecycledViewPool().setMaxRecycledViews(YOUR_VIEW_TYPE, 0);這將禁用指定的視圖類型

+0

非常感謝,這就像一個魅力! – FVod

0

這是getItemViewType覆蓋是做什麼用的回收利用。

如果您覆蓋getItemViewType以返回ViewPager位置的不同值,RecyclerView將使用它來知道它應該何時回收該視圖。

+0

我已經在使用它,我的問題是這是同一個位置上的相同類型。當我向下滾動,然後再起來(因此同樣viewholder再次顯示)的問題正在發生 – FVod

+0

那麼你真的需要發佈您的代碼和您的logcat,這應該不是太難解決。 –