• recyclerview 缓存讲解


     

    0.12020.11.11 11:53:36字数 305阅读 496

    自己的理解:
    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

  • 相关阅读:
    bzoj3224
    [洛谷日报第62期]Splay简易教程 (转载)
    bzoj1588
    codeforces467C
    codeforces616B
    codeforces379C
    codeforces545C
    codeforces285C
    codeforces659C
    快读代码level.2
  • 原文地址:https://www.cnblogs.com/xgjblog/p/14636503.html
Copyright © 2020-2023  润新知