在向上/向下滚动时,RecyclerView会更改错误的值

mar*_*kus 2 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);
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Gau*_*rav 17

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

所以,你应该else为你的所有人添加声明if语句中如以下示例所示

if (condition) {
    change bg color to new color
}
else {
    change bg color to old color
}
Run Code Online (Sandbox Code Playgroud)