今天用RecyclerView,删除了某个元素,再点击后面的元素报错
image.png
原因是因为点击事件使用的onBindViewHolder() 方法中的position来获取数据,而当项目的位置在数据集中发生变化时,clerview不会再次调用onBindViewHolder,除非项目本身无效或无法确定新位置。所以就造成position不是实时更新的。
list.remove(position);
notifyItemRemoved(position);
//刷新一下
notifyDataSetChanged();
网友评论