我不明白为什么 RecyclerView
如果有超过一种类型的视图,则回收视图并重复使用它们。Adapter
将创建两个以上的 ViewHolder
在这种情况下,在窗口中可以重复使用的视图类型不超过两种,但如果下一个项目的类型与已经循环使用的两种类型中的任何一种不匹配,则将没有视图可供重复使用以呈现下一个项目,因为它所需要的视图类型仍然在屏幕上可见,不能被循环使用。恳请大家给予解答。
如果有一个回收的视图可用,与正在变得可见的新视图matches,那么它将重新使用。否则它将为新的视图创建新的对象。它使用getViewType()来查找。你可以看一下 这个 以获得更多的相关要点。
已经创建的ViewHolders的数量。通常情况下,你可以通过确定多少个列表项可以同时显示在屏幕上,然后在这个数字上加2到4来计算出应该有多少个ViewHolders。这不是精确的公式,但可以让你知道有多少ViewHolders被创建来显示任何给定的RecyclerView。
这个 RecyclerView
将创建尽可能多的 ViewHolder
的,因为它需要填充可用的可见空间。回收发生在一个滚动出视图时。届时,它将被重新用于一个新的项目滚动到视图中。