前言
最近在网上看到许多关于 RecyclerView 缓存相关的技术文章,也是在其中看到了许多的知识点,我将之收集了起来进行汇总和整理,利用自己的见解来分析 RecyclerView 的缓存机制的相关问题
优势
首先 RecyclerView 是由 Google 推出来对 GridView 和 ListView 进行取代的列表方案,RecyclerView 本身它是不关心视图相关的问题的,由于 ListView的紧耦合的问题, google 的改进就是 RecyclerView 自身不用参与任何视图有关的问题,它不用在意应该将子 View 放在合适的位置,也不在意如何进行分割这些子 View,更不在意每个子View所显示的外观,本质上来说就是 RecyclerView 它只负责回收和重用的工作
● 能够替代 Listview 和 GridView ,不仅可以加载列表同时也能够加载表格
● 能够支持瀑布流这种高级的显示方式
● 内置了强劲的垃圾回收机制
● 规范了其 Viewholder 的使用
难点
在 RecyclerView 中,是没有 onItemClickListener 方法的,所以只能在适配器中处理事件,如果要从适配器上添加或移除条目,就必须要明确通知适配器。这跟先前的 notifyDataSetChanged 方法有略微不同
整体总结了几点如下:
● Adapter:包装数据集合且为每个条目创建视图
● ViewHolder:对每个用于显示数据条目的子View进行保存
● LayoutManager:在适当的位置放置于每个条目的视图
● ItemDecoration:绘制一些装饰视图在每个条目的视图的周围或上面
● ItemAnimator:在条目被添加、移除或者重排序时对其添加动画效果
缓存分级
RecyclerView 的缓存可以分为四级,也有的人将之分成三级,