RecyclerView 点击位置错乱问题
错误分析
RecyclerView 有一堆数据,然后点击添加,其中一个pos位置的数据变成蓝色,然后下滑位置会发生错乱,其中的原理,其实是和listview错误是类似的。
如图:。点击添加则字变成蓝色,点击取消则变成黑色。未处理之前其实上滑下滑会出现蓝字错乱问题。
问题解决
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 点击位置错乱问题相关推荐
- Android 解决RecyclerView删除Item导致位置错乱的问题
Android 解决RecyclerView删除Item导致位置错乱的问题 参考文章: (1)Android 解决RecyclerView删除Item导致位置错乱的问题 (2)https://www. ...
- 什么?RecyclerView中获取点击位置的接口被废弃了?
本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新. 各位小伙伴们,大家早上好.上个礼拜,我在公众号的某篇文章下面看到这样一条留言: 什么?hol ...
- android view嵌套,Android RecyclerView嵌套RecyclerView点击事件
RecyclerView嵌套RecyclerView点击事件遇到取值错乱的问题 其实问题根本就是咱们没有处理好被嵌套的那层recycleview的position 那么解决思路也很简单,想办法把被嵌套 ...
- Android Studio图形界面在真机中位置错乱现象解决
Android Studio提供了可视化的图形界面编辑功能,用户可以直接拖拽想要的组件到屏幕中即可. 但是由于手机分辨率的不同,有时在电脑模拟器中排布正常的页面,到手机真机中就无法正常显示,或者发生页 ...
- echarts地图文字重叠解决方案_Echarts扩展地图文字位置错乱的问题
最近在弄echarts 因为要用到扩展地图,所以在官网下载了相应的json文件 ,引入之后发现文字位置错乱 于是查找网上资料 发现 textFixed : { '大洋洲' : [265, 0], }, ...
- vue+element-ui中的el-table-column使用v-if导致位置错乱的现象
vue+element-ui中的el-table-column使用v-if导致位置错乱的现象 自我记录. Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染.这么做除了使 Vue 变 ...
- Unity UGUI获取鼠标在屏幕的准确点击位置
想要获取鼠标在屏幕的准确点击位置,千万不要胡乱写,什么转化坐标系,什么Ray射线检测都是浮云. 1,转化坐标系只是相对而言,并不能准确实现当前鼠标点击在屏幕的位置: 2,Ray检测,hit是需要碰撞的 ...
- 根据鼠标点击位置获取DataGridView的选择行号。
一个非常非常郁闷的问题:在DataGridView中当右键点击某一行的时候才显示右键菜单. 找了好几个方法结果总是回归到对鼠标点击位置的判断,用鼠标点击位置来判断点中的是哪一行. 找了好几个函数都没有 ...
- JS获取页面鼠标点击位置的坐标
本来想通过JS实现当前页面对其他页面的操作,在网上发现了这段js代码,先保存下来,可以获取页面鼠标点击位置的坐标. <html> <body> <script> f ...
最新文章
- Spark on K8S 的最佳实践和需要注意的坑
- 以下关于程序设计语言的叙述中,不正确的是()【最全!最详细解释!!】
- ansible基础配置
- Android.View.InflateException: Binary XML File Line #异常的解决
- 如何动态在maven插件中加载项目及第三方类
- 改文案、删微博又道歉 广汽蔚来自导自演“比特币购车”乌龙案
- 漫画:什么是A*寻路算法?
- Atitit 爬虫发展历史 在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运
- vdbench多主机运行指导
- 智能制造解决方案举例 智能制造解决方案落地实例
- 2019互联网+直播平台开发如何发展?
- EKL构造点和线的基本用法
- Ubuntu22.04安装惠普P1108打印机并在局域网内共享
- 苹果微信换行怎么打_苹果手机微信怎么加密,教你几招快速加密
- origin做相关性分析图_相关性分析的可视化_相关系数图的绘制过程
- 华为matebook笔记本鸿蒙,聊聊鸿蒙对笔记本电脑行业的影响
- 怎样用Excel搜索表格内的内容?
- Python自动化?软件测试工程师竟然用它干坏事!
- IT公司软件工程师薪水排名
- 【测试基础】Linux系统组成、目录结构及基本命令