发现这篇文章总结的很好
https://juejin.im/entry/5769fd38128fe10057d33dd8
https://www.jianshu.com/p/e99b5e8bd67b
额外总结:
1,当dispatchTouchEvent在ACTION_DOWN拦截后,如果dispatchTouchEvent在ACTION_MOVE和ACTION_UP的时候,返回false,事件交给activity的onTouchEvent处理。如果返回true继续事件提交给后续ACTION_MOVE和ACTION_UP(无影响)
2,当onTouchEvent在ACTION_DOWN返回true后,onTouchEvent在ACTION_MOVE,ACTION_UP的时候返回值对事件流程无影响。onTouchEvent会把事件交给Activity处理。
3,当子布局拦截请求后,父布局在事件拦截过程中(onInterceptTouchEvent)拦截了请求则,子布局会触发ACTION_CANCEL
demo地址:https://github.com/zhumingwei/TouchExample
网友评论