四级缓存
第一级
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()。