何时调用onCreateViewHolder方法以及为什么要调用?RecyclerView

3

到目前为止,我一直认为在使用 adapter = new RecyclerViewAdapter(this, list) 构造函数创建适配器时,RecyclerView.Adapter 中的 onCreateViewHolder 会被调用,但我现在意识到它实际上是在 Activity 的 onCreate 方法执行完所有代码之后被调用的,这是因为 RecyclerView 不会创建不必要的视图,只会创建可以显示在设备屏幕上的视图数量吗?

1个回答

6

RecyclerView.LayoutManager确定在RecyclerView中有哪些视图将可见以及有多少视图将可见时,就会调用此方法。如果RecyclerView.RecycledViewPool没有足够的ViewHolder来重复使用,则会调用此方法。

通常情况下,这会在每个布局阶段和首次滚动时发生。


有没有办法控制视图持有者的初始计数?在我的情况下,它在初始加载时创建了2个,然后在第一次滚动时创建了几个。因此,第一次滚动有点卡顿,至少在调试中是这样的(使用systrace进行检查)。在发布配置中很少发生,并且几乎不可察觉。 - Rosen Dimov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接