背景

在删除掉一条数据(位置在position)时,想要使用RecyclerView的动态效果,就需要调用notifyItemRemoved,但是在使用了这个方法之后出现了bug,当删除掉某条数据之后,最后一条数据会重复出现(下标错乱),为了弥补这个问题,还需要调用notifyItemRangeChanged这个方法,使得下面的itemView重新绑定就可以了。

下面是解决的办法

1
2
3
4
5
6
7
public void remove(int position) {
commentInfo.remove(position);
notifyItemRemoved(position);
if(position != commentInfo.size()){ // 如果移除的是最后一个,忽略
notifyItemRangeChanged(position, commentInfo.size() - position);
}
}