1. MChangedScrap, mAttachedScrap

Save the on-screen Holder when it comes to the Item animation

  1. The holder removed from notifyItemRangeChanged is saved in mChangedScrap
  2. Holders removed by other notify (except notifyDataSetChanged) are saved in mAttachedScrap

2. Cache (mCachedViews)

Save the holder that has just been removed from the screen. Default size: 2

3. Extension (mViewCacheExtension)

Customizable cache implementation, default empty implementation

4. Pool (mRecyclerPool)

Save the invalid holder that has been removed from the screen. The default size is 5, and you can pass it into a new pool by yourself (usually in RV nesting, the child RV and the parent RV can share the same pool).