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*/);
}