美文网首页Android
Android - 简单解释RecyclerView的四级缓存

Android - 简单解释RecyclerView的四级缓存

作者: xlq | 来源:发表于2021-03-18 14:37 被阅读0次

    RecyclerView缓存的是ViewHolder,即每个ItemView

    1. ItemView的加载
      因为每个ItemView由xml加载成为View (onCreateViewHolder方法) ,是一个深度遍历的过程,并且是通过反射来获取的每个View,这其实是一个耗时的操作。如果每个子ItemView都通过这种方法去加载,是非常不合适滴。所以需要缓存。

    2. 四级缓存
      界面上的View缓存 :mAttachedScrap
      刚刚移出屏幕的缓存: mCachedViews
      自定义缓存:mViewCacheExtension
      缓存池:mRecyclerPool

    • mAttachedScrap在屏幕中的缓存,用于数据刷新时,不需要重新加载子ItemView,直接复用;

    • mCachedViews刚刚移出屏幕的缓存,最大容量为2,通过position来保存,数据不变,直接复用;滑动时,该缓存一边add,一边remove。

    • mViewCacheExtension自定义缓存,基本用不上

    • mRecyclerPoor保存第二级缓存中保存不了的ItemView。通过itemType来保存,每种itemType可以保存5个ItemView。具体缓存结构如下图:

      RecycledViewPool.png

    相关文章

      网友评论

        本文标题:Android - 简单解释RecyclerView的四级缓存

        本文链接:https://www.haomeiwen.com/subject/vvnucltx.html