错误分析

RecyclerView 有一堆数据,然后点击添加,其中一个pos位置的数据变成蓝色,然后下滑位置会发生错乱,其中的原理,其实是和listview错误是类似的。

如图:。点击添加则字变成蓝色,点击取消则变成黑色。未处理之前其实上滑下滑会出现蓝字错乱问题。

问题解决

在RecyclerView 里的适配器中解决以下的问题。所有代码都在RecyclerView 的适配器中设置。
 1.先设一个List  将点击按钮的位置保持下来。

private List<Integer> listPos= new ArrayList<>();
2.然后onBindViewHolder里将所有的数据都设置为黑色,并将listPos中保存的位置数据变成蓝色
 holder.textView.setTextColor(context.getColor(R.color.black));ref(holder,position);
listPos的添加和取数据的方法分别为:listAdd 和ref:
3.在添加和取消按钮中,将分别将位置add或remove,listPos中的数据
  private void listAdd(int pos){int isPos = 0;for(int i = 0;i< listPos.size(); i++){if(listPos.get(i) == pos){isPos = 1;}}if(isPos == 0){listPos.add(pos);}}private void ref(ViewHolder holder, int position){for(int i = 0;i< listPos.size(); i++){if(listPos.size() != 0) {if (listPos.get(i) == position) {holder.textView.setTextColor(context.getColor(R.color.blue));holder.add.setVisibility(View.GONE);holder.candle.setVisibility(View.VISIBLE);}}}}

add:
 listAdd(position);ref(holder, position);
remove:
for(int j = 0;j< listPos.size(); j++){if(listPos.get(j) == position){LogInfo.log(listPos + "");listPos.remove(j);}}
holder.textView.setTextColor(context.getColor(R.color.black));

总结

Ok了。大致步骤就是这样,总的来说就是先将所有数据变成黑色,然后再循环保存的数据位置,将其变成蓝色。并且点击添加和取消,添加或删除listPos中保存的位置。

RecyclerView 点击位置错乱问题相关推荐

  1. Android 解决RecyclerView删除Item导致位置错乱的问题

    Android 解决RecyclerView删除Item导致位置错乱的问题 参考文章: (1)Android 解决RecyclerView删除Item导致位置错乱的问题 (2)https://www. ...

  2. 什么?RecyclerView中获取点击位置的接口被废弃了?

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新. 各位小伙伴们,大家早上好.上个礼拜,我在公众号的某篇文章下面看到这样一条留言: 什么?hol ...

  3. android view嵌套,Android RecyclerView嵌套RecyclerView点击事件

    RecyclerView嵌套RecyclerView点击事件遇到取值错乱的问题 其实问题根本就是咱们没有处理好被嵌套的那层recycleview的position 那么解决思路也很简单,想办法把被嵌套 ...

  4. Android Studio图形界面在真机中位置错乱现象解决

    Android Studio提供了可视化的图形界面编辑功能,用户可以直接拖拽想要的组件到屏幕中即可. 但是由于手机分辨率的不同,有时在电脑模拟器中排布正常的页面,到手机真机中就无法正常显示,或者发生页 ...

  5. echarts地图文字重叠解决方案_Echarts扩展地图文字位置错乱的问题

    最近在弄echarts 因为要用到扩展地图,所以在官网下载了相应的json文件 ,引入之后发现文字位置错乱 于是查找网上资料 发现 textFixed : { '大洋洲' : [265, 0], }, ...

  6. vue+element-ui中的el-table-column使用v-if导致位置错乱的现象

    vue+element-ui中的el-table-column使用v-if导致位置错乱的现象 自我记录. Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染.这么做除了使 Vue 变 ...

  7. Unity UGUI获取鼠标在屏幕的准确点击位置

    想要获取鼠标在屏幕的准确点击位置,千万不要胡乱写,什么转化坐标系,什么Ray射线检测都是浮云. 1,转化坐标系只是相对而言,并不能准确实现当前鼠标点击在屏幕的位置: 2,Ray检测,hit是需要碰撞的 ...

  8. 根据鼠标点击位置获取DataGridView的选择行号。

    一个非常非常郁闷的问题:在DataGridView中当右键点击某一行的时候才显示右键菜单. 找了好几个方法结果总是回归到对鼠标点击位置的判断,用鼠标点击位置来判断点中的是哪一行. 找了好几个函数都没有 ...

  9. JS获取页面鼠标点击位置的坐标

    本来想通过JS实现当前页面对其他页面的操作,在网上发现了这段js代码,先保存下来,可以获取页面鼠标点击位置的坐标. <html> <body> <script> f ...

最新文章

  1. Spark on K8S 的最佳实践和需要注意的坑
  2. 以下关于程序设计语言的叙述中,不正确的是()【最全!最详细解释!!】
  3. ansible基础配置
  4. Android.View.InflateException: Binary XML File Line #异常的解决
  5. 如何动态在maven插件中加载项目及第三方类
  6. 改文案、删微博又道歉 广汽蔚来自导自演“比特币购车”乌龙案
  7. 漫画:什么是A*寻路算法?
  8. Atitit 爬虫发展历史 在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运
  9. vdbench多主机运行指导
  10. 智能制造解决方案举例 智能制造解决方案落地实例
  11. 2019互联网+直播平台开发如何发展?
  12. EKL构造点和线的基本用法
  13. Ubuntu22.04安装惠普P1108打印机并在局域网内共享
  14. 苹果微信换行怎么打_苹果手机微信怎么加密,教你几招快速加密
  15. origin做相关性分析图_相关性分析的可视化_相关系数图的绘制过程
  16. 华为matebook笔记本鸿蒙,聊聊鸿蒙对笔记本电脑行业的影响
  17. 怎样用Excel搜索表格内的内容?
  18. Python自动化?软件测试工程师竟然用它干坏事!
  19. IT公司软件工程师薪水排名
  20. 【测试基础】Linux系统组成、目录结构及基本命令

热门文章

  1. JS 两个数组(对象)去重合并
  2. Scott Hanselman的2006 Windows最终开发者和高级用户工具列表
  3. 如何在IDEA上创建一个Maven项目2022版
  4. 客服常用话术大全,赶紧收藏起来吧!
  5. 小白用户怎么才能让电脑换IP?
  6. 申请抖音企业认证流程
  7. 浅谈Hybrid技术——Big-man
  8. Python深度使用指南
  9. C语言考试知识点汇总(实践知识点)
  10. 队列的存储结构和常见操作(c 语言实现)