recyclerview bug : IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter

recyclerview bug : IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter

分析源码,

首先,notifyDataSetChanged一定要在主线程执行;否则报错,非UI线程不能操作view。

其次,报错其实是主线程有child view 更新的时候,发现child的position小于adapter的getItemCount,代码里面就会直接报错。

所以,只要保证adapter的getItemCount的修改,和notifyDataSetChanged同时在主线程执行,中间没有被打断即可。也就是把两个代码放在一起。

或者说,notifyDataSetChanged的时候,应该保证getItemCount的结果是对的

你可能感兴趣的:(recyclerview bug : IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter)