在一个RecyclerView.Adapter中会创建多少个viewholders?

问题描述 投票:2回答:3

我不明白为什么 RecyclerView 如果有超过一种类型的视图,则回收视图并重复使用它们。Adapter 将创建两个以上的 ViewHolder在这种情况下,在窗口中可以重复使用的视图类型不超过两种,但如果下一个项目的类型与已经循环使用的两种类型中的任何一种不匹配,则将没有视图可供重复使用以呈现下一个项目,因为它所需要的视图类型仍然在屏幕上可见,不能被循环使用。恳请大家给予解答。

android android-widget
3个回答
1
投票

如果有一个回收的视图可用,与正在变得可见的新视图matches,那么它将重新使用。否则它将为新的视图创建新的对象。它使用getViewType()来查找。你可以看一下 这个 以获得更多的相关要点。


0
投票

已经创建的ViewHolders的数量。通常情况下,你可以通过确定多少个列表项可以同时显示在屏幕上,然后在这个数字上加2到4来计算出应该有多少个ViewHolders。这不是精确的公式,但可以让你知道有多少ViewHolders被创建来显示任何给定的RecyclerView。


-1
投票

这个 RecyclerView 将创建尽可能多的 ViewHolder的,因为它需要填充可用的可见空间。回收发生在一个滚动出视图时。届时,它将被重新用于一个新的项目滚动到视图中。

© www.soinside.com 2019 - 2024. All rights reserved.