问题:
使用notifyItemInserted(position)
和notifyItemRemoved(position)
对RecyclerView
进行添加、删除操作时,如果连续操作,后面的position
就会错乱。
解决方法:
- 统一使用
notifyDataSetChanged()
方法刷新; - 结合
notifyItemRangeChanged(int positionStart, intitemCount)
刷新,其中positionStart
是添加或删除位置索引,itemCount
是数据总数。
示例:
notifyItemInserted(position);
if (position != mData.size()) {
notifyItemRangeChanged(position, mData.size() - position);
}
notifyItemRemoved(position);
if (position != mData.size()) {
notifyItemRangeChanged(position, mData.size() - position);
}