主要思路:(用scroll来举例)
- 实现NestedScrollingChild接口。
- 定义NestedScrollingChildHelper变量。
- 在实现的NestedScrollingChild每个接口中调用。NestedScrollingChildHelper对应的函数。
- setNestedScrollingEnabled(true); 一般在初始化里面调用设置可以嵌套滑动。
- onTouchEvent 或者 dispatchTouchEvent 方法里面case ACTION_DOWN 调用startNestedScroll函数 告诉父View开始嵌套滑动。
- onTouchEvent 或者 dispatchTouchEvent 方法里面case ACTION_MOVE 调用dispatchNestedPreScroll或者dispatchNestedScroll 这个就视情况而定了告诉父View滑动的情况。
- onTouchEvent 或者 dispatchTouchEvent 方法里面case ACTION_UP 调用stopNestedScroll 告诉父View结束嵌套滑动。
- 重写onDetachedFromWindow方法,调用NestedScrollingChildHelper的onDetachedFromWindow方法
主要思路:
- 实现NestedScrollingParent接口。
- 定义NestedScrollingParentHelper变量。
- 在实现的NestedScrollingParent几个接口中(onNestedScrollAccepted, onStopNestedScroll, getNestedScrollAxes)调用NestedScrollingParentHelper对应的函数。
- 视情况而定onNestedScroll onNestedPreScroll onNestedFling onNestedPreFling 做相应的处理。
参考地址: 嵌套机制 参考地址: 自定义behavior