四级缓存
第一级
1 | final ArrayList<ViewHolder> mAttachedScrap = new ArrayList<>(); |
mAttachedScrap: 页面上正在显示的ViewHolder
mChangedScrap:动画过程中的ViewHolder
可直接使用,不需 onCreateViewHoler()
、 onBindViewHoler()
第二级
1 | final ArrayList<ViewHolder> mCachedViews = new ArrayList<ViewHolder>(); |
默认存储2个刚移出屏幕的ViewHolder, 可直接使用,不需 onCreateViewHoler()
、 onBindViewHoler()
第三级
1 | private ViewCacheExtension mViewCacheExtension; |
用户自定义缓存,不推荐
第四级
1 | RecycledViewPool mRecyclerPool; |
默认存储5个移出屏幕的ViewHolder,复用无需重新调用 onCreateViewHoler()
, 要重新执行 onBindViewHoler()
。