您当前的位置: 首页 >  缓存

xiangzhihong8

暂无认证

  • 0浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

深入理解Android RecyclerView的缓存机制

xiangzhihong8 发布时间:2021-07-29 10:01:22 ,浏览量:0

我们知道,RecyclerView在大量数据时依然可以丝滑般顺畅的滑动,那它究竟是怎么实现的呢,而RecyclerView之所以好用得益于它优秀的缓存机制。

我们知道,RecyclerView本身是一个ViewGroup,因此在滑动时就避免不了添加或移除子View(子View通过RecyclerView#Adapter中的onCreateViewHolder创建),如果每次使用子View都要去重新创建,肯定会影响滑动的流畅性,所以RecyclerView通过Recycler来缓存的是ViewHolder(内部包含子View),这样在滑动时可以复用子View,某些条件下还可以复用子View绑定的数据。所以本质上来说,RecyclerView之所以能够实现顺畅的滑动效果,是因为缓存机制,因为缓存减少了重复绘制View和绑定数据的时间,从而提高了滑动时的性能。

一、缓存 1.1、四级缓存

Recycler缓存ViewHolder对象有4个等级,优先级从高到底依次为:

  • mAttachedScrap:缓存屏幕中可见范围的ViewHolder;
  • mCachedViews:缓存滑动时即将与RecyclerView分离的ViewHolder,默认最大2个;
  • ViewCacheExtension:自定义实现的缓存;
  • RecycledViewPool :ViewHolder缓存池,可以支持不同的ViewType;
1.1.1 mAttachedScrap

mAttachedScrap存储的是当前屏幕中的

关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.0643s