我正在使用一个使用 ViewHolder 模式并利用缓存机制的列表视图。这是我尝试设置列表项背景之一的代码片段
if(drawable!=null)
{
if(this.backgroundBurnColor!=null && this.backgroundBurnColor.getValue()!=0)
{
Log.d("burncolor", this.backgroundBurnColor.getValue()+"");
drawable.setColorFilter(this.backgroundBurnColor.getValue(), Mode.MULTIPLY);
}else if(this.burnColorKey!=null)
{
Log.d("burncolor", this.Owner.getOwner().getColors().get(this.burnColorKey).getValue()+"");
drawable.setColorFilter(this.Owner.getOwner().getColors().get(this.burnColorKey).getValue(), Mode.MULTIPLY);
}else{
drawable.setColorFilter(null);
}
v.setBackgroundDrawable(drawable);
}
在此代码中,drawable 用于相同的项目类型,但即使当我更改可绘制图像时相同的项目类型,它也会根据需要更改。但是更改可绘制的颜色过滤器会更改出现在屏幕上的列表部分中的每个可绘制过滤器。例如,当我向下滚动列表并且屏幕上出现不同的颜色过滤器时,然后所有可绘制对象的颜色过滤器都变成相同的过滤器,我需要为我的每一行获取单独的颜色过滤器。有什么帮助吗?谢谢