将在RecyclerView.Adapter中创建多少个视图

时间:2015-11-25 15:02:32

标签: android android-widget

如果有多种类型的观看,我无法理解RecyclerView如何回收视图并重新使用它们。我知道Adapter会再创建两个ViewHolder s在这种情况下,可以重复使用两种类型的视图来呈现窗口中的下一个项目。但是如果下一个项目的类型与已回收的两种类型中的任何一种都不匹配,没有可用于重新显示下一个项目的视图,因为它所需的视图类型仍然可以在屏幕上看到,并且不能被回收。系统如何处理它?感谢任何和所有答案。

3 个答案:

答案 0 :(得分:1)

如果有可用的回收视图匹配到可见的新视图,则它将重新使用。否则,它将为新视图创建新对象。它使用getViewType()来查找 您可以查看this以了解更多相关要点。

答案 1 :(得分:0)

RecyclerView将创建尽可能多的ViewHolder,以填充可用的可见空间。当一个滚动出视图时,就会发生回收。那时,它将被重新用于滚动到视图中的新项目。

答案 2 :(得分:0)

已创建的ViewHolders的数量。通常,您可以找出 应该确定一次可以在屏幕上显示多少个列表项,然后将2加到4 到那个数字。那不是确切的公式,但是会告诉你多少 已经创建了ViewHolders以显示任何给定的RecyclerView。