美文网首页
recyclerview 缓存讲解

recyclerview 缓存讲解

作者: 菜鸟何时起飞 | 来源:发表于2020-11-11 11:53 被阅读0次

    自己的理解:
    1 首先明确recyclerView 的缓存一共有四个:
    1.1 mAttachedScrap
    1.2 mChangedScrap
    1.3 mCachedViews
    1.4 mRecyclerPool
    这四个大家都耳熟能详。。。。
    2 这四个缓存的区别:
    2.1 mAttachedScrap 与 mChangedScrap 这两个缓存一般是说的布局的时候的缓存(比如调用remove,notifyItemRangeChanged 等等)。
    布局分为pre-layout与post-layout,两个布局的整体流程都差不多:detachViewAt(移除view从ViewGroup 即recyclerView) -> recycler.scrapView(缓存页面上的view到mAttachedScrap 或者mChangedScrap)->fill(重新布局)
    pre-layout 与post-layout的唯一区别就是预布局执行fill的时候会忽略移除view的空间,并将最终需要显示的view提前加载在屏幕外面,方便post-layout计算各个view的移动距离,好做移动动画。
    查看文章:https://juejin.im/post/6892809944702124045#heading-3
    https://mp.weixin.qq.com/s/auphzaQF6_wJx6dGFY6niA
    2.2 mCachedViews 与 mRecyclerPool 这两个缓存一般说的是页面滑动的时候的缓存。
    2.3 mAttachedScrap 与 mChangedScrap 如果在布局完成之后还有多余的ViewHolder 也会直接全部丢进mRecyclerPool

    相关文章

      网友评论

          本文标题:recyclerview 缓存讲解

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