Android 无法更改recyclerview中特定项目的背景色

Android 无法更改recyclerview中特定项目的背景色,android,android-recyclerview,adapter,Android,Android Recyclerview,Adapter,我正在尝试更改特定recyclerview项目的背景色。但我不明白为什么有些物品也会无缘无故地改变背景色 public void onBindViewHolder(@NonNull final MyViewHolder holder, final int i) { // if (i==2) { holder.favoriteBtn.setBackgroundColor(context.getResources().getColor(R.color

我正在尝试更改特定recyclerview项目的背景色。但我不明白为什么有些物品也会无缘无故地改变背景色

   public void onBindViewHolder(@NonNull final MyViewHolder holder, final int i) {
// 
 if (i==2)
        {
            holder.favoriteBtn.setBackgroundColor(context.getResources().getColor(R.color.red));

        }
}
根据我的场景,我只想更改项目编号2的颜色。

好的,我得到了解决方案。。。 我们只需要停止recyclerview,重新设计我们的物品。。我们可以通过在适配器的onBindViewHolder()方法中编写以下行来实现

holder.setIsRecyclable(false);

这不是一个好主意。相反,你应该在
if
上放置一个
else
,将背景设置为其他位置的默认颜色。是的,这就是
回收视图的全部要点,以重用类似的
视图,这样你就不会在内存中出现一堆屏幕外的
视图。您需要创建刚好足以填满屏幕空间的内容(再加上一些内容,以便在滚动时“填补空白”),然后在
onBindViewHolder()
中更新这些
视图的特定位置。