RecycleView数据展示的时候,根据返回的List数据来设置条目不同的状态,但是在向下滚动再返回的时候,recycleview复用条目会导致数据的混乱。
简单的关闭复用肯定是不行的,可以给条目设置一个TAG来解决这个问题:
1.在适配器里面添加成员变量
List<Integer> positions = new ArrayList<>();
2.在需要添加标记的地方添加当前索引position
//先判断是否添加过,否则可能会重复添加
if (!positions.contains(position)) {
positions.add(position);
}
3.在onBindViewHolder()方法的最下面来设置单个条目的状态
holder.cbName.setChecked(positions.contains(position) ? true : false);
网友评论