android - 如何测量对 findViewByID 的额外调用 - RecyclerView
问题描述
假设您的RecyclerView
列表中的每个项目都包含四个嵌套View
的 s,并且您没有将这些视图缓存在ViewHolder
. findViewById()
如果屏幕上适合 8 个项目,如果滚动浏览 30 个项目,大约会进行多少额外的调用?
除了适合屏幕的八个项目之外,假设平滑滚动还需要两个额外的项目。
我认为答案是60。
我对吗?
解决方案
假设滚动 30 个项目,每个项目只绑定一次数据。
每个项目内部有 4 个视图,每个 4 次调用bind
。
总findViewById()
来电将是
30 * 4 = 120.
不应调用 2 个视图,因为它们尚未绑定。
你的问题
将进行多少次额外的 findViewById() 调用
鉴于:
可见 8 个项目。隐藏了 2 个项目。
如果您缓存了视图,总调用量将是:
(8 + 2) * 4 = 40.
额外的电话将是 120 - 40 = 80。
推荐阅读
- javascript - 复制带有链接输入字段的列表
- vector - 2D 射线与 AABB 相交,代码生成太多相交
- python - 我无法在 Flask 上使用 SQLAlchemy 创建表
- reactjs - 当用户未通过身份验证时反应闪烁的私有路由
- javascript - 将 JS 链接到 Google 应用程序脚本以运行基于 Web 应用程序上的复选框的功能
- python - AttributeError:“列表”对象在发送电子邮件时没有属性“编码”
- bash - 如何在bash中查找列值并替换
- pyspark - PYSPARK:查找不包括前 1 个百分位数据的变量的平均值
- amazon-web-services - AWS Amplify 在创建 DynamoDB 表后创建全局二级索引
- python - 如何从具有多行的文本文件创建整数列表?