android - RecyclerView 在向上/向下滚动时更改错误值

标签 android android-recyclerview

之前我使用了 ListView 和 ListView 的自定义适配器。 一切正常,除了当我上下滚动时数据发生变化(例如,我有一个 if 语句我的适配器更改 ListView 项目的 bg 颜色。当我向上和向下滚动时,颜色在第一次加载时变错了滚动一切都很好!)

我通过在适配器的 getView 方法中将 View 始终重置为 null 解决了 ListView 的这个问题。

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

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

谢谢!

最佳答案

一旦您设置了该属性,它就会对该项目保持不变。当您滚动时,该 View 从屏幕上消失,并且相同的项目布局再次用于下一个项目。所以你需要写else条件来重置旧的属性。

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

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

关于android - RecyclerView 在向上/向下滚动时更改错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32971046/

相关文章:

Android 图像在 recyclerview 中闪烁

android - RecyclerView 水平滚动对齐在中心

Android:Google Fused Location 在位置关闭时不起作用

注释的 Android Studio 代码样式

android - 如何下载特定版本的 Android 源代码(例如 Android 2.2)

android - Glide 实际上是如何工作的?

c# - 加载项目时遇到警告 IDE0006 错误

android - 新的 Google Play 控制台 - 首次应用发布的托管发布

android - 旋转后,recyclerview 行中的图像消失

android - 如何均匀分配回收 View 中的项目?