向上/向下滚动RecyclerView更改错误的值

时间:2015-10-06 13:18:12

标签: android android-recyclerview

之前我使用listview和listview的自定义适配器。 所有工作都很好,除非我向上和向下滚动数据更改(例如我的if语句我适配器更改listview项目的bg颜色。当我向上和向下滚动颜色改变错误,在第一次加载滚动一切都很好!)

我通过在适配器的getView方法中将视图重置为null来解决listview的这个问题。

v = null;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.friendlv, null);

现在我切换到RecyclerView,我也有同样的问题,但我不知道解决这个问题..

谢谢!

1 个答案:

答案 0 :(得分:17)

设置属性后,该项将保持不变。滚动时,该视图将从屏幕上消失,并且相同的项目布局将再次用于下一个项目。因此,您需要编写else条件来重置旧属性。

因此,您应该将else语句添加到所有if语句中,如以下示例所示

if (condition) {
    change bg color to new color
}
else {
    change bg color to old color
}