矢量drawable颜色没有在onBindViewHolder中更新

时间:2017-06-13 08:37:36

标签: android

我使用以下方法动态设置矢量drawable的背景颜色:

Drawable mDrawable = ContextCompat.getDrawable(context, item.getCategoryIconId());

            mDrawable.setColorFilter(new
                    PorterDuffColorFilter(ContextCompat.getColor(context, item.getCategoryColorId()), PorterDuff.Mode.MULTIPLY));
            holder.expenseCatIcon.setImageDrawable(mDrawable);

但是当在onBindViewHolder中再次将颜色设置为相同的Vector drawable时,它会针对我使用该drawable的每个recyclelerview行进行更新。

enter image description here

上面我添加了我正在谈论的视图,我有一个不同的活动,我可以创建像"食物"," gult"," loot&#等项目34;和" ffd"等等 我确保资源颜色ID不同,来自Log:

  

名称:食物颜色:2131623945   名称:gult颜色:2131624100   名称:战利品颜色:2131624174   名称:ffd颜色:2131624084

我的理解是当我将滤色器设置为矢量drawable时,颜色最后会被应用到该矢量drawable,并且会为所有相同的可绘制资源产生相同的颜色。 < / p>

我能做些什么让这项工作成功吗?

1 个答案:

答案 0 :(得分:0)

随着视图被回收,因此您应用的更改会显示onBindHolder中的所有drawable。如果你想要一个不同的输出,也许可以添加一些条件语句。