主要涉及两个接口(child-->NestedScrollingChild // parent-->NestedScrollingParent)
在使用的时候可以将嵌套流程概括如下(以触摸滚动为例,惯性滚动(fling)的流程与此类似)
- 调用child的sartNestedScroll()来发起嵌套滚动流程(实质是寻找能够配合child进行嵌套滚动的parent).parent的onStartNestedScroll()会被回调,如果此方法返回true,则onNestedScrollAccepted()也会被回调。
- child每次滚动前,可以先询问parent是否要滚动,即调用dispatchNestedPreScroll(),这会回调到parent的onNestedPreScroll(),parent可以在这个回调中先于child滚动。
- disdispatchNestedPreScroll()之后,child可以进行自己的滚动操作。
- child滚动以后,可以调用dispatchNestedScroll(),会回调到parent的onNestedScroll(),在这里parent可以进行后于child的滚动。
- 滚动结束,调用stopNestedScroll()。