gpt4 book ai didi

android - PorterDuffColorFilter 更改我的 recyclerview 中的所有图标

转载 作者:行者123 更新时间:2023-11-29 00:56:02 24 4
gpt4 key购买 nike

所以 - 我有一个 recyclerview,如果我单击一个项目,我想更改在单击位置附加到我的 textView 的可绘制对象的 colorFilter。

问题是,当我更改可绘制对象的颜色时,所有项目都会发生变化,而不仅仅是单击的位置。

代码:

for (drawable: Drawable? in textView.compoundDrawablesRelative) {
drawable?.colorFilter = PorterDuffColorFilter(getColor(textView.context, color), PorterDuff.Mode.SRC_IN)
}

这个 for 循环在我的适配器的“onBindViewHolder”中被调用,当我点击时 - 我正在用我的位置调用 notifyItemChanged,我已经三次检查它,这个函数只运行一次我的单击了正确的位置..那么为什么一切都改变了?

最佳答案

根据 Drawable 的文档:

By default, all drawables instances loaded from the same resource share a common state; if you modify the state of one instance, all the other instances will receive the same modification.

您需要使用 mutate() 获取不再共享状态的可绘制对象的新实例(实际上大多数时候只有状态是新的)方法。

关于android - PorterDuffColorFilter 更改我的 recyclerview 中的所有图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54692211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com