首先RecyclerView.Adapter中的notifyItemRemoved()方法需要传入的参数是 item的下标
0、1、2、3这样的
一个一个item的删除是没有问题的
但是在多行删除中会出现position混乱甚至是崩溃:
因为notifyItemRemoved()这个方法执行时是去 遍历Adapter中的tiem,第二次执行这个方法时的下标与我们想要的下标不一致,会偏移
比如说:我想要删除下标为0和2的item
在真正执行时,删除的却是0和3的item(第一次未结束时马上执行第二次就会出现下标偏移)
那在多次执行notifyItemRemoved()的时候减去偏移量就好了:
//listInt是下标集合
int count = 0;
for (Integer integer : listInt) {
dataAdapter.notifyItemRemoved(integer - count);
count++;
}
这样就不会出现position混乱和崩溃问题了