76、BaseQuickAdapter的复用错乱

1、获取位置

int position = helper.getAdapterPosition();

2、BaseQuickAdapter复用错乱

1)、禁止复用(不太好)

  item设值:item.setSelected(isChecked);

helper.setIsRecyclable(false);
https://blog.csdn.net/tdltdltdl886/article/details/88979775

2)、

getData().get(helper.getAdapterPosition()).setSelected(isChecked);
替换掉 item.setSelected(isChecked);

 

3)、推荐(加个清除监听器)

https://www.jianshu.com/p/7188078e5bbf?from=singlemessage

在recyclerView里的,checkBox是复用状态的,所以每次使用都要清空下监听器,不然就会出问题

 holder.cb.setOnCheckedChangeListener(null);
ckEdit.setOnCheckedChangeListener(null);
ckEdit.setChecked(item.isSelected());
ckEdit.setOnCheckedChangeListener((buttonView, isChecked) -> {
    item.setSelected(isChecked);
    onCheckListener.onchecked();
});

你可能感兴趣的:(android)