Android - 小红书优化 - RecyclerView的CommonRvAdapter有待优化?

背景

偶然发现小红书一个名为CommonRvAdapter通用的Adapter基类有一定的优化空间,主要体现在list在add、remove操作时没有正确调用notifyItemInserted、notifyItemRemoved的问题。

继承此类的地方多达75处,所以觉得有必要提出来说一下。

小红书源码

如上图,在addItem和remove时直接调用的是notifyDataSetChanged(),这将导致所有可见item的刷新,对性能有一定的影响。我们使用RecyclerView替换ListView的一个重要的原因就是RecyclerView提供了更多细分的notifyxxx()方法用于更新单条数据,如果直接使用notifyDataSetChanged()那就失去了使用RecyclerView的意义了。

so,在此建议小红书在此基类做更细致的区分,以提高速度。


相关文档

更多notifyxxx()方法的用法网上将的很详细,我就不赘述,参照:

RecyclerView更新数据方法 notifyItemChanged()、notifyItemInsert()、notifyIteRemoved()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容