栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

何时调用onBindViewHolder及其工作方式?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

何时调用onBindViewHolder及其工作方式?

让我从一些背景知识开始(您可能已经了解了,但是需要进行解释

onBindViewHolder()
)。

RecyclerView
用于显示项目的长列表(或网格)。假设您要显示100行。一种简单的方法是只创建100个视图,每行一个视图,然后将它们全部布局。但这将是浪费的,因为它们中的大多数将不在屏幕上,因为可以说其中只有10个适合屏幕。

因此,

RecyclerView
仅创建屏幕上的10个视图。这样,您的速度和内存使用率将提高10倍。但是,当您开始滚动并需要开始显示下一个视图时会发生什么?

同样,一种简单的方法是为您需要显示的每个新行创建一个新视图。但是这样一来,当您到达列表末尾时,您将创建100个视图,并且内存使用情况将与第一种方法相同。创建视图需要花费时间,因此您的滚动很可能不会流畅。

这就是为什么

RecyclerView
利用以下事实:滚动并在屏幕上显示新行时,旧行也会从屏幕上消失。代替为每个新行创建新视图,而是通过将新数据绑定到旧视图来对其进行
回收 和重用。

这恰好发生在中

onBindViewHolder()
。最初,您将获得新的未使用的视图持有人,并且必须用要显示的数据填充它们。但是,当您滚动时,将开始获得用于离开屏幕的行的视图持有人,并且您必须用新数据替换它们持有的旧数据。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号