学习笔记-RecyclerView回收复用

192 阅读1分钟

RecyclerView 复用

RecyclerView 四级缓存

  1. mChangedScrapmAttachedScrap
    用来缓存还在屏幕内的 ViewHolder
  2. mCachedViews
    用来缓存移除屏幕之外的 ViewHolder
  3. mViewCacheExtension
    用户自定义扩展缓存,需要用户自己管理 View 的创建和缓存
  4. RecycledViewPool
    ViewHolder 缓存池

RecyclerView 回收

RecycledViewPool

RecycledViewPool 内部是一个 SparseArray, 它可以缓存多个 ViewHolder 类型,但 每个ViewHolder 类型默认最多只能保存 5 条数据( DEFAULT_MAX_SCRAP ), 可以通过 setMaxRecycledViews(...) 修个每个ViewHolder 的最大保存数量.