如果我在 recyclerview 中有一个复选框,并且还有一个已检查的更改监听器来监听其事件,我发现其他一些 View 持有者也会得到检查,即使我没有检查它们!!
是因为recyclerview重用了它的viewholder吗? 我该如何克服这个问题?
最佳答案
是的,回收器 View 重用其 View 持有者。事实上,这是回收器 View 的主要目的,它允许更快的滚动,因为膨胀 View 并为每个 View 实例调用 findViewById
的成本很高。
您可以通过手动设置 onBindViewHolder
中的所有值来解决此问题。在您的情况下,这意味着调用 checkBox.setChecked(false)
将复选框恢复为默认状态。
关于android - 回收器 View 中复选框上的 Checkedchange 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966799/