so-我有一个recyclerview,如果我单击一个项目,我想更改我的绘制可绘制的ColorFilter,该绘制的位置上的文本视图单击。
。问题是,当我更改可绘制的颜色时,它会在所有项目中更改,而不是单击的位置。
代码:
for (drawable: Drawable? in textView.compoundDrawablesRelative) {
drawable?.colorFilter = PorterDuffColorFilter(getColor(textView.context, color), PorterDuff.Mode.SRC_IN)
}
在我的适配器的" onbindviewholder"中,当我单击时 - 我正在使用我的位置来调用notifyitemchange,我已经对其进行了三倍检查,此功能只在我的位置上运行一次正确的位置点击..那么为什么一切都会改变?
根据 Drawable
的文档:
默认情况下,从同一资源加载的所有可抽签实例共享一个共同的状态;如果修改一个实例的状态,其他所有实例都将接收相同的修改。
您需要获取一个新实例(实际上只有状态是新的大多数情况),该实例不再使用mutate()
方法。