RecyclerView删除选中条目(多选单选),解决删除坐标错乱、刷新局部闪退的问题

kotlin代码如下:
···
// 删除选中图片或视频
iv_preview_delete?.setOnClickListener {

        var i = 0
        var len = beans.size
        while (i < len) {
            if (beans.get(i).isChecked) {
                //----------------------
                adapter?.notifyItemRemoved(i)
                beans.removeAt(i)
                mViewInfoList.removeAt(i)
                len--
                i--
                adapter?.notifyItemRangeChanged(0, mViewInfoList?.size)  //第一个是位置,第二个是数量
            }
            i++

        }

    }

···
Java代码如下:
···
iv_preview_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//因为remove某一条后,列表的position并没有刷新,
//所以remove后,要根据remove的那一条的position来notifyItemRangeChanged
for (int i = 0, len = datas.size(); i < len; i++) {
if (datas.get(i).isChecked()) {
//----------------------
notifyItemRemoved(i);
datas.remove(i);
len--;
i--;
notifyItemRangeChanged(0, getItemCount()); //第一个是位置,第二个是数量
//---------------------
}
}
}
});

···

你可能感兴趣的:(RecyclerView删除选中条目(多选单选),解决删除坐标错乱、刷新局部闪退的问题)