面试系列——ListView 和 RecyclerView 简要对比分析

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试系列——ListView 和 RecyclerView 简要对比分析相关的知识,希望对你有一定的参考价值。

使用上

ListView

  1. 继承重写BaseAdapter类;
  2. 自定义ViewHolder与convertView的优化;
  3. 默认不支持单个View 刷新

RecyclerView

  1. 继承重写RecyclerView.Adapter与RecyclerView.ViewHolder
  2. 设置LayoutManager,以及layout的布局效果
  3. 支持局部刷新和动画

缓存

二级缓存 :屏幕内View 屏幕外View
四级缓存 :屏幕内View 屏幕外View
ViewCacheExtension(用户自定义) RecyclerPool (用户自定义)

选取策略

  1. 性能上: RecyclerView 并不比ListView 有明显的性能优势。
  2. 功能上: RecyclerView 适用于灵活布局时,新组件开发优先选取RecyclerView 。

附录

RecyclerView 使用技巧

两个位置函数的区别

  • adapterPosition 在Adapter中绑定点击事件,注意处理 NO_POSITION 的case。
  • layoutPosition 在layoutManager获取 用户看到的位置

参考资料

【腾讯Bugly干货分享】https://zhuanlan.zhihu.com/p/23339185

以上是关于面试系列——ListView 和 RecyclerView 简要对比分析的主要内容,如果未能解决你的问题,请参考以下文章

listview优化

如何在适配器外部的 ListView 和 GridView 中获取项目位置?

ListView之checkbox错位问题解决

将 ListView 中的位置传递给子 RecyclerView 适配器

Android ListView 相关问题(面试常用)

浅谈android中的ListView合集系列之解决ScrollView和ListView嵌套冲突