我有一个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*/);
}