Android - 在 RecyclerView 中滚动时颜色重复
Android - Color repeat on scrolling in RecyclerView
我有一个 RecyclerView,其中选定数量的项目显示不同的背景颜色。
它给了我许多不同颜色的视图。
我用adapter的位置变色,后来发现滚动的时候位置变了
所以我给了ArrayList的每一个对象一个唯一的代码。如果唯一代码与给定代码匹配,我给程序更改背景颜色。
喜欢,
uniqueCode = 5;
public void onBindViewHolder(//..){
Object object = objectArrayList.get(i);
if(object.uniqueCode() == uniqueCode ){
holder.layout.setBackgroundColor(//....);
}
}
但我仍然看到一些视图在滚动时更改了背景颜色,这与该唯一 ID 不匹配。
这个问题的解决方案是什么?
如果我理解正确的话,有多个单元格具有 "unique" 颜色,但它不应该。发生这种情况是因为您从未将布局的背景重置为默认颜色。
if(object.uniqueCode() == uniqueCode){
holder.layout.setBackgroundColor(/*unique color*/);
}
else{
holder.layout.setBackgroundColor(/*default color*/);
}
我有一个 RecyclerView,其中选定数量的项目显示不同的背景颜色。
它给了我许多不同颜色的视图。
我用adapter的位置变色,后来发现滚动的时候位置变了
所以我给了ArrayList的每一个对象一个唯一的代码。如果唯一代码与给定代码匹配,我给程序更改背景颜色。
喜欢,
uniqueCode = 5;
public void onBindViewHolder(//..){
Object object = objectArrayList.get(i);
if(object.uniqueCode() == uniqueCode ){
holder.layout.setBackgroundColor(//....);
}
}
但我仍然看到一些视图在滚动时更改了背景颜色,这与该唯一 ID 不匹配。
这个问题的解决方案是什么?
如果我理解正确的话,有多个单元格具有 "unique" 颜色,但它不应该。发生这种情况是因为您从未将布局的背景重置为默认颜色。
if(object.uniqueCode() == uniqueCode){
holder.layout.setBackgroundColor(/*unique color*/);
}
else{
holder.layout.setBackgroundColor(/*default color*/);
}