我正在动态地将视图添加到我的项目中RecyclerView
.这些添加的视图应该只与它们被添加到的项目相关,但是当我滚动时我遇到了问题.它似乎View
被回收并加载了一个新项目,但那些以前添加的视图仍然存在,只是现在在错误的项目上.
我假设它只是因为ViewHolder
它被重用,所以添加的项目在加载时会再次出现一个新项目.
怎么会解决这个问题呢?
这是我的一个老问题.奖金被放置在它上面,因此受欢迎程度的激增以及多个新的和不相关的答案.
正如我对这个答案的评论和@CQM在我原来的问题下面的评论所述,答案是覆盖onViewRecycled()
方法并在那里执行任何所需的操作.当视图被回收时调用此方法,并且可以在此处执行任何清理操作.
有关此方法的文档可在此处找到.
在我的情况下,这是一个删除TextView
附加到视图的隐形的问题.该文本本身已被删除,但观点仍然存在.如果许多不可见TextView
的东西在视图上累积并且在滚动时没有正确回收,则滚动将开始滞后.