android - Android - 在 RecyclerView 中滚动时颜色重复
问题描述
我有一个 RecyclerView,其中选定数量的项目显示不同的背景颜色。
它给了我很多不同颜色的观点。
我使用适配器的位置来改变颜色,后来我发现滚动时位置发生了变化。
所以我给 ArrayList 的每个对象一个唯一的代码。如果唯一代码与给定代码匹配,我让程序更改背景颜色。
像,
uniqueCode = 5;
public void onBindViewHolder(//..){
Object object = objectArrayList.get(i);
if(object.uniqueCode() == uniqueCode ){
holder.layout.setBackgroundColor(//....);
}
}
但是我仍然得到一些视图更改滚动时的背景颜色,这与该唯一 ID 不匹配。
这个问题的解决方案是什么?
解决方案
如果我理解正确,则有多个具有“独特”颜色的单元格,但它不应该。发生这种情况是因为您从未将布局的背景重置为默认颜色。
if(object.uniqueCode() == uniqueCode){
holder.layout.setBackgroundColor(/*unique color*/);
}
else{
holder.layout.setBackgroundColor(/*default color*/);
}
推荐阅读
- command-line-interface - 如果 Robot Framework 中的测试套件之一通过,如何将最终结果标记为 PASS?
- asp.net - Ext.net 重复标题下拉上下文菜单,用于在树面板中添加/隐藏列
- oracle - 如果没有自动增量,我必须添加带有 continue Id no 的行
- css - 值和类名具有相同的值 - webpack - css-loader
- python - Python轮函数没有按预期工作
- node.js - 如何解决节点 sass 安装错误
- amazon-web-services - 如何在 Kubernetes Yaml 中对 AWS ECR 进行身份验证
- flutter - Flutter:flutter_signin_button 溢出问题
- vue.js - 从 vuejs 组件访问 i18n 值
- javascript - 超过元素 REACT 时使 img 跟随光标