【问题标题】:Not able to change the background color of a particular item in recyclerview无法更改 recyclerview 中特定项目的背景颜色
【发布时间】:2019-08-03 10:36:14
【问题描述】:

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

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

        }
}

根据我的情况,我只想更改项目编号 2 的颜色..

【问题讨论】:

    标签: android android-recyclerview adapter


    【解决方案1】:

    好的,我找到了解决方案... 我们只需要停止 recyclerview 来回收我们的项目。我们可以通过在适配器的 onBindViewHolder() 方法中编写以下行来做到这一点。

    holder.setIsRecyclable(false);
    

    【讨论】:

    • 这不是一个好主意。相反,您应该在该 if 上放置一个 else 以将背景设置为其他位置的默认颜色。
    • 是的,这就是RecyclerView 的全部意义所在,可以重复使用类似的Views,这样您就不会在内存中留下一堆屏幕外的Views。您想创建足够的空间来填充屏幕空间(再加上几个以在滚动时“填充空白”),然后更新这些 Views 以使其在 onBindViewHolder() 中的特定位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多