回收是RecyclerView的灵魂,也是RecyclerView与普通ViewGroup的区别。众所周知,RecyclerView中含有四类缓存,在布局过程中它们各自有各自的用途:
1、AttachedScrap: 存放可见、不需要重新绑定的ViewHolder
2、CachedViews: 存放不可见、不需要重新绑定的ViewHoler
3、ViewCacheExtension: 自定义缓存(存放不可见、不需要重新绑定)
4、RecyclerPool: 存放不可见、需要重新绑定的ViewHolder
1
dispatchTouchEvent():主要是在View和ViewGroup中进行事件分发
onInterceptTouchEvent():进行Touch事件的拦截
onTouchEvent():Touch事件的处理
事件分发与NestedScrollingView
事件分发是这样的:子View首先得到事件处理权,处理过程中,父View可以对其拦截,但是拦截了以后就无法再还给子View(本次手势内)。
NestedScrolling机制是这样的:内部View在滚动的时候,首先将dx,dy交给NestedScrollingParent,NestedScrollingParent可对其进行部分消耗,剩余的部分还给内部View。
2