嘿,谢谢光临!
所以有一个问题,我得到了一个RecyclerView,它可以包含我想要的任何物品。在这种情况下,当我在项目上进行选择时,它会显示出他已被选中。当我选择它时,我需要取消选择我先前选择的。但是如果他不在视野中,我将无法访问该视图。
当他再次绑定时,我尝试让逻辑知道是否被选中,但是某些项目无法访问,并且在滑动时不会重绘它们,因此它们保持被选中状态。 ..
有人看到解决方法吗?
感谢您的时间,我知道这里没有代码。但是我不知道能向您展示什么,因为在实施解决方案之前更需要思路。
答案 0 :(得分:1)
这听起来像是您在RecyclerViewHolders自身中存储了选定状态的项目,您不应该这样做。 RecyclerViewHolders中显示的状态数据应存储在ViewHolders自身之外,并在更新事件期间根据需要传递。当ViewHolders进入和退出视图时,它们将在控件之外重置和重新创建,因此ViewHolder需要能够随时从其初始状态转到可见状态,并且您不能依赖该状态要维护的ViewHolder。