Android ViewHolder如何优化适配器?
我已经见过很多次了,定制适配器通常拥有一个内部静态类Android ViewHolder如何优化适配器?,android,Android,我已经见过很多次了,定制适配器通常拥有一个内部静态类ViewHolder,谷歌的演示(packagecom.example.android.api.view列表14) 有人告诉我,这种方法可以优化代码效率 请告诉我为什么ViewHolder可以优化代码。ViewHolder模式将每个视图存储在标记对象内。这样可以避免每次调用getView时都调用findViewById,但如果convertView不为null,只需检索标记即可 编辑: 正如@jqpubliq正确指出的那样 避免findView
ViewHolder
,谷歌的演示(packagecom.example.android.api.view
列表14)
有人告诉我,这种方法可以优化代码效率
请告诉我为什么
ViewHolder
可以优化代码。ViewHolder
模式将每个视图存储在标记对象内。这样可以避免每次调用getView时都调用findViewById
,但如果convertView不为null,只需检索标记即可
编辑:
正如@jqpubliq正确指出的那样
避免findViewById的一个主要原因是它需要遍历
在找到之前调用它的视图组的子视图
具有所提供id的视图。这意味着此调用将逐步进行
成本越高,视图就越复杂
作为补充,避免使用findViewById的一个主要原因是,它会遍历调用它的视图组的子视图,直到找到具有提供id的视图。这意味着,视图越复杂,调用的成本就越高