安卓 - 在RecyclerView中滚动时重复使用颜色

问题描述 投票:0回答:1

我有一个RecyclerView,其中选定的一些项目显示不同的背景颜色。

它给我提供了许多不同颜色的视图,我使用适配器的位置来改变颜色,后来我发现滚动时位置会改变。

我使用适配器的位置来改变颜色,后来我发现滚动时位置会改变。

所以我给ArrayList的每一个对象赋予了一个独特的代码。我给了程序改变背景颜色,如果唯一的代码与给定的代码相匹配。

比如

    uniqueCode = 5;

public void onBindViewHolder(//..){

    Object object = objectArrayList.get(i);

    if(object.uniqueCode() == uniqueCode  ){
        holder.layout.setBackgroundColor(//....);
    }
}

但是,我仍然得到一些视图改变滚动的背景颜色,这不符合独特的ID。

有什么办法可以解决这个问题?

android android-recyclerview scroll recycler-adapter repeat
1个回答
0
投票

如果我理解正确的话,有多个单元格具有 "独特 "的颜色,但它不应该。发生这种情况是因为你从未将布局的背景重置为默认颜色。

if(object.uniqueCode() == uniqueCode){
    holder.layout.setBackgroundColor(/*unique color*/);
}
else{
    holder.layout.setBackgroundColor(/*default color*/);
}
© www.soinside.com 2019 - 2024. All rights reserved.