關於解決Recyclerview清除資料時滑動介面造成的奔潰。
阿新 • • 發佈:2019-01-25
1,首先遇到的錯誤提示:
java.lang.IndexOutOfBoundsException: Inconsistency detected .Invalid view holder adapter positionViewHolder{7e70c41 position=3 id=-1, oldPos=-1, :-1 no parent}
2,錯誤分析:當資料列表清空的時候,這時候item也沒有對應的資料,當你再滑動時由於匹配不到對應的資料所以就GG,而且並不指示是哪個地方出錯,應該是recyclerview內部處理問題。
3,解決方法:(1)可以在初始化的時候對recyclerView的觸控進行監聽,當處於資料更新狀態時就設定成不可滑動,更新完成則設定成可滑動,程式碼如下:
recyclerview.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (mIsRefreshing) { return true; } else { return false; } } } );
mIsRefreshing為狀態值。
(2),重新整理用dialog,且設定成不能點選外部取消
dialog.setCanceledOnTouchOutside(false);