Android事件分发

正常情况都不处理

1层:dispatchTouchEvent

1层:onInterceptTouchEvent

2层:dispatchTouchEvent

2层:onInterceptTouchEvent

3层:dispatchTouchEvent

3层:onInterceptTouchEvent

3层:onTouchEvent Down

2层:dispatchTouchEvent设置true直接返回不super

1dispatchTouchEvent>>>>ACTION_DOWN

1onInterceptTouchEvent>>>>ACTION_DOWN

2dispatchTouchEvent>>>>ACTION_DOWN

1dispatchTouchEvent>>>>ACTION_MOVE

1onInterceptTouchEvent>>>>ACTION_MOVE

2dispatchTouchEvent>>>>ACTION_MOVE

1dispatchTouchEvent>>>>ACTION_UP

1onInterceptTouchEvent>>>>ACTION_UP

2dispatchTouchEvent>>>>ACTION_UP

2层:dispatchTouchEvent设置false直接返回不super

1dispatchTouchEvent>>>>ACTION_DOWN

1onInterceptTouchEvent>>>>ACTION_DOWN

2dispatchTouchEvent>>>>ACTION_DOWN

2层:onInterceptTouchEvent设置true

1dispatchTouchEvent>>>>ACTION_DOWN

1onInterceptTouchEvent>>>>ACTION_DOWN

2dispatchTouchEvent>>>>ACTION_DOWN

2onInterceptTouchEvent>>>>ACTION_DOWN

2onTouchEvent>>>>ACTION_DOWN

1onTouchEvent>>>>ACTION_DOWN

2层:onInterceptTouchEvent设置false

1dispatchTouchEvent>>>>ACTION_DOWN

1onInterceptTouchEvent>>>>ACTION_DOWN

2dispatchTouchEvent>>>>ACTION_DOWN

2onInterceptTouchEvent>>>>ACTION_DOWN

3dispatchTouchEvent>>>>ACTION_DOWN

3onInterceptTouchEvent>>>>ACTION_DOWN

3onTouchEvent>>>>ACTION_DOWN

2onTouchEvent>>>>ACTION_DOWN

1onTouchEvent>>>>ACTION_DOWN

2层:onTouchEvent设置true

1dispatchTouchEvent>>>>ACTION_DOWN

1onInterceptTouchEvent>>>>ACTION_DOWN

2dispatchTouchEvent>>>>ACTION_DOWN

2onInterceptTouchEvent>>>>ACTION_DOWN

3dispatchTouchEvent>>>>ACTION_DOWN

3onInterceptTouchEvent>>>>ACTION_DOWN

3onTouchEvent>>>>ACTION_DOWN

2onTouchEvent>>>>ACTION_DOWN

1dispatchTouchEvent>>>>ACTION_MOVE

1onInterceptTouchEvent>>>>ACTION_MOVE

2dispatchTouchEvent>>>>ACTION_MOVE

2onTouchEvent>>>>ACTION_MOVE

1dispatchTouchEvent>>>>ACTION_UP

1onInterceptTouchEvent>>>>ACTION_UP

2dispatchTouchEvent>>>>ACTION_UP

2onTouchEvent>>>>ACTION_UP

总结

dispatchTouchEvent默认返回false,super是关键

onInterceptTouchEvent默认返回false,super无效果

onTouchEvent默认返回false,super无效果

dispatchTouchEvent默认返回true并调super

不调用super

1:dispatchTouchEvent设置true可以拦截所有操作

2:dispatchTouchEvent设置false当当前控件终止

调用super

1:dispatchTouchEvent设置true相当于onTouchEvent设置为true

2:dispatchTouchEvent设置false这里是系统默认情况

onInterceptTouchEvent super无效果

onTouchEvent默认返回falsesuper无效果

你可能感兴趣的:(Android事件分发)