android - 回收器 View 中复选框上的 Checkedchange 监听器

标签 android android-recyclerview android-checkbox

如果我在 recyclerview 中有一个复选框,并且还有一个已检查的更改监听器来监听其事件,我发现其他一些 View 持有者也会得到检查,即使我没有检查它们!!

是因为recyclerview重用了它的viewholder吗? 我该如何克服这个问题?

最佳答案

是的,回收器 View 重用其 View 持有者。事实上,这是回收器 View 的主要目的,它允许更快的滚动,因为膨胀 View 并为每个 View 实例调用 findViewById 的成本很高。

您可以通过手动设置 onBindViewHolder 中的所有值来解决此问题。在您的情况下,这意味着调用 checkBox.setChecked(false) 将复选框恢复为默认状态。

关于android - 回收器 View 中复选框上的 Checkedchange 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966799/

相关文章:

android - 消失前在复选框中显示勾号

android - 无法在 Android 应用程序中对齐复选框(水平/垂直)

android - 如何以编程方式从 Android 设备读取 RCS 消息

java - 修复 Android TextView 上的两个字符串

java - OSMBonuspack RoadManager NetworkOnMainThreadException

java - Android CheckBox OnCheckListener 不起作用

java - 使用 RxJava 2 进行安卓测试

android - 回收站 View 未正确更新

java - 使用Picasso通过DataObject在RecyclerView中加载图像

android - Espresso,当 NestedScrollView 或 RecyclerView 在 CoordinatorLayout 中时滚动不起作用