adapter中:

 private List<Integer> checkboxUserIdList = new ArrayList<>();

在如下这个方法中:

 public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) 

将item 的 root layout 设置tag为当前的position:

// 设置item背景颜色的view,将其setTag
itemViewHolder.rl_item.setTag(position);

判断的时候,就可以获取root layout的tag值,将其进行判断,设置item当前状态。

 if(checkboxUserIdList.contains(itemViewHolder.rl_item.getTag())) {
itemViewHolder.rl_item.setEnabled(false);
itemViewHolder.check_box.setEnabled(true);
itemViewHolder.rl_item.setBackgroundResource(R.color.gray_bg);
} else {
itemViewHolder.rl_item.setEnabled(true);
itemViewHolder.check_box.setEnabled(false);
itemViewHolder.rl_item.setBackgroundResource(R.color.white);
}

其中是因为ViewHolder复用,导致的状态的错乱,所以想要解决这个item的状态问题:

1、viewholder就不进行复用,也不存在checkbox 混乱选中的问题了,但是 你滑动的时候卡的要死:

 viewHolder.setIsRecyclable(false); 

2、在获取到的bean中设置一个标志位,但是需要修改bean 。虽然只是加个字段的问题,但是不建议。

3、也就是上面写出来的代码。

参考:其实跟listview 复用一样。

Recycleview checkbox 复用出现混乱解决方法

Android ListView CheckBox状态错乱

RecyclerView item 状态错乱的更多相关文章

  1. recyclerview item点击事件

    recyclerview早就不陌生了,比起过去传统的listView,样式更多,也较为高效一点,这里整理一下recylerview中item的点击事件. recyclerview和listView不同 ...

  2. Android ListView CheckBox状态错乱(转)

    转自:http://www.cnblogs.com/wujd/archive/2012/08/17/2635309.html listView中包含checkBox的时候,经常会发生其中的checkB ...

  3. RecyclerView item独占一行实现

    核心代码: GridLayoutManager manager = new GridLayoutManager(context, 4); manager.setSpanSizeLookup() cla ...

  4. 使用recyclerView item布局match_parent属性失效的问题

    https://blog.csdn.net/overseasandroid/article/details/51840819

  5. Android-Adapter-View复用机制

    前言 相信Android开发者对ListView不会陌生,使用ListView需要设置相应的Adapter才能展示数据.Adapter到底是什么东西?让我们来一探究竟. Adapter p1.png ...

  6. SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新

    下拉刷新和上拉刷新都用SwipeRefreshLayout 自带的进度条 布局 <?xml version="1.0" encoding="utf-8"? ...

  7. 修复垂直滑动RecyclerView嵌套水平滑动RecyclerView水平滑动不灵敏问题

    在 Android 应用中,大部分情况下都会使用一个垂直滚动的 View 来显示内容(比如 ListView.RecyclerView 等).但是有时候你还希望垂直滚动的View 里面的内容可以水平滚 ...

  8. Android RecyclerView的基本使用

    Android RecyclerView 在去年的Google I/O大会上就推出来了,以前经常使用的ListView 继承的是AbsListView,而RecyclerView则直接继承 ViewG ...

  9. RecyclerView实例-实现可下拉刷新上拉加载更多并可切换线性流和瀑布流模式(1)

    摘要 最近项目有个列表页需要实现线性列表和瀑布流展示的切换,首先我想到的就是上 [RecyclerView],他本身已经很好的提供了三种布局方式,只是简单做个切换应该是很简单的事情,如果要用Recyc ...

随机推荐

  1. 浅谈Android下的Bitmap之大Bitmap加载

    引言 我们常常提到的“Android程序优化”,通常指的是性能和内存的优化,即:更快的响应速度,更低的内存占用.Android程序的性能和内存问题,大部分都和图片紧密相关,而图片的加载在很多情况下很用 ...

  2. [NHibernate]基本配置与测试

    目录 写在前面 nhibernate文档 搭建项目 映射文件 持久化类 辅助类 数据库设计与连接配置 测试 总结 写在前面 一年前刚来这家公司,发现项目中使用的ORM是Nhibernate,这个之前确 ...

  3. [NHibernate]存储过程的使用(三)

    目录 写在前面 文档与系列文章 查询 总结 写在前面 前面的文章介绍了在nhibernate中使用存储过程进行增删改的操作,当然查询也是可以的,在nhibernate中也可以执行任意的存储过程.本篇文 ...

  4. [Python] 学习笔记之MySQL数据库操作

    1 Python标准数据库接口DB-API介绍 Python标准数据库接口为 Python DB-API,它为开发人员提供了数据库应用编程接口.Python DB-API支持很多种的数据库,你可以选择 ...

  5. Private-code MaxCounter

    No need for a double cycle: : You are given N counters, initially set to 0, and you have two possibl ...

  6. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

  7. OS X EI Capitan安装refind时出现Could not set boot device property: 0xe00002bc

    参考:terminal - OSX 10.11 El Capitan - setting boot device property not working ... 解决办法: 1.重启MacMini, ...

  8. JAVA解析XML的四种方法

    XML文件:test.xml <?xml version="1.0" encoding="UTF-8"?> <employees> &l ...

  9. 支持向量机SVM

    SVM(Support Vector Machine)有监督的机器学习方法,可以做分类也可以做回归.SVM把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类. 有好 ...

  10. C/C++ 笔试题

    /////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程 ...