我想在我的条件下更改Recyclerview
项目背景颜色,但当我滚动背景颜色自动更改我知道holder.setIsRecyclable(false);
但我不想设置holder.setIsRecyclable(false);
而且我知道
if(item.value == 1){
// do something
} else{
// do something
}
但我想使用嵌套if else
if (feetInt > 0 && feetInt < 4) {
((PatientViewHolder) holder).rlClientItemMain.setBackgroundColor(ContextCompat.getColor(mContext, R.color.player_list_green));
} else if (feetInt >= 4 && feetInt < 6) {
((PatientViewHolder) holder).rlClientItemMain.setBackgroundColor(ContextCompat.getColor(mContext, R.color.player_list_yellow));
} else if (feetInt == 0 || feetInt >= 6) {
((PatientViewHolder) holder).rlClientItemMain.setBackgroundColor(ContextCompat.getColor(mContext, R.color.player_list_red));
}else{
((PatientViewHolder) holder).rlClientItemMain.setBackgroundColor(ContextCompat.getColor(mContext, R.color.player_list_grey));
}
而不是在feetInt
上改变颜色而不是在你的对象类中保持一个标志,并根据特定的标志改变你的背景颜色
看起来您没有为列表中的每个对象更新feetInt的值。这就是你面临这个问题的原因。
更新列表中的foot int值以获取不同的位置,您将获得所需的结果。
另外,删除getItemViewCount()和setIsRecyclable()。根本不需要这些。此外,分享您的代码以获得更具体的答案。