目录
- RecyclerView之概述
- RecyclerView之绘制流程
- RecyclerView之Adapter
- RecyclerView之ItemDecoration
- RecyclerView之ItemAnimator
- RecyclerView之DiffUtil
- RecyclerView之缓存策略
概述
Recycler
1 |
|
缓存类型
mAttachedScrap、mChangedScrap
- mAttachedScrap保存依附于 RecyclerView 的 ViewHolder。包含移出屏幕但未从 RecyclerView 移除的 ViewHolder。
- mChangedScrap 保存数据发生改变的 ViewHolder,即调用 notifyDataSetChanged() 等系列方法后需要更新的 ViewHolder。
mCachedViews
- mCachedViews 用于解决滑动抖动的问题,默认容量为2。
ViewCacheExtension
开发者自定义的缓存
RecyclerViewPool
缓存池,可以在多个RecyclerView中共享ViewHolder。通过setMaxRecycledViews设置对应type的ViewHolder的缓存池大小
获取VH流程
RecyclerViewPool
缓存池的用法:
1 | var linearLayoutManager = LinearLayoutManager(activity) |