這兩天遇到一個問題,有個頁面總是崩潰出錯,錯誤提示是
Process: com.eva.masterplus, PID: 3536
java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true
是指view沒有被recycled,找了半天,發現recyclerView的數據進行清空操作之后,在重新添加數據之前忘記了通知界面進行重新繪制,所以崩潰。
解決方法只要在clear數據之后代碼中記得加notifyDataSetChanged() 即可。
還發現一種情況是在上拉加載更多或者下拉刷新之后忘記使控件重置了。要記得上拉或者下拉之后加上代碼
if (swipeRefreshLayout.isRefreshing()) { swipeRefreshLayout.setRefreshing(false); } else { recyclerView.onLoadMoreComplete(); }