1. 程式人生 > >解決RecyclerView重新整理,資料顯示錯亂

解決RecyclerView重新整理,資料顯示錯亂

【問題現象】

    做一個條目展示的的專案用到RecyclerView,在介面中有收藏和取消收藏的功能,第一個出現的問題就是點選按鈕收藏或者取消收藏後,按鈕的狀態發生了改變,但是當收藏或者取消收藏的條目上下滑動滑出螢幕外再次進入時,按鈕的狀態沒有改變,除錯發現此時沒有重新獲取專案的狀態標記,所以此時需要將專案修改的資料重新發送給adapter,然後重新整理NotifyDataSetChanged,問題完美解決;第二齣線的問題就是條目資料錯亂問題,採用以下方法可以完美解決:


【解決方法】

首先,在繫結adapter給RecycleView之前,設定adapter的stableIds為true。

adapter.setHasStableIds(true);
recyclerView.setAdapter(adapter);

其次,在adapter中,需要重寫getItemId方法。

@Overridepublic long getItemId(int position)

{ return position;}

之後重新執行APP,發現數據不在錯亂。