Android事件分发

角色:ViewGroupTouch & ViewTouch
事件:

  1. ViewGroupTouch
    1.1 dispatchTouchEvent
    1.2 onInterceptTouchEvent
    1.3 onTouchEvent
    1.4 onClick
  2. ViewTouch
    2.1 dispatchTouchEvent
    2.2 onTouchEvent
    2.3 onClick
    =========================

修改ViewGroupTouch

  • 都调用super
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewTouch:  dispatchTouchEvent: 0
ViewTouch: onTouchEvent: down0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onInterceptTouchEvent: 2
ViewTouch:  dispatchTouchEvent: 2
ViewTouch: onTouchEvent: move2

...

ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onInterceptTouchEvent: 1
ViewTouch:  dispatchTouchEvent: 1
ViewTouch: onTouchEvent: up1
TouchActivity: viewTouch,,,onClick: 
  • ViewGroupTouch的dispatchTouchEvent返回true
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch:  dispatchTouchEvent: 2
...
ViewGroupTouch:  dispatchTouchEvent: 1
  • ViewGroupTouch的dispatchTouchEvent返回false
ViewGroupTouch:  dispatchTouchEvent: 0
  • ViewGroupTouch的onInterceptTouchEvent返回true
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewGroupTouch: onTouchEvent: down 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onTouchEvent: move 2
...
ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onTouchEvent: up 1
TouchActivity: viewGroupTouch,,,onClick: 
  • ViewGroupTouch的 onInterceptTouchEvent返回false
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewTouch:  dispatchTouchEvent: 0
ViewTouch: onTouchEvent: down 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onInterceptTouchEvent: 2
ViewTouch:  dispatchTouchEvent: 2
ViewTouch: onTouchEvent: move 2
... 

ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onInterceptTouchEvent: 1
ViewTouch:  dispatchTouchEvent: 1
ViewTouch: onTouchEvent: up 1
TouchActivity: viewTouch,,,onClick: 
  • ViewGroupTouch的onTouchEvent返回true
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewGroupTouch: onTouchEvent: down 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onTouchEvent: move 2

...
ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onTouchEvent: up 1
  • ViewGroupTouch的onTouchEvent返回false
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewTouch:  dispatchTouchEvent: 0
ViewTouch: onTouchEvent: down 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onInterceptTouchEvent: 2
ViewTouch:  dispatchTouchEvent: 2
ViewTouch: onTouchEvent: move 2

ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onInterceptTouchEvent: 1
ViewTouch:  dispatchTouchEvent: 1
ViewTouch: onTouchEvent: up 1
TouchActivity: viewTouch,,,onClick: 

修改子view

  • ViewTouch 的 dispatchTouchEvent 返回true
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewTouch:  dispatchTouchEvent: 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onInterceptTouchEvent: 2
ViewTouch:  dispatchTouchEvent: 2
...
ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onInterceptTouchEvent: 1
ViewTouch:  dispatchTouchEvent: 1
  • ViewTouch 的 dispatchTouchEvent 返回false
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onTouchEvent: down 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onTouchEvent: move 2
...
ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onTouchEvent: up 1
TouchActivity: viewGroupTouch,,,onClick: 
  • ViewTouch 的 onTouchEvent 返回true
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewTouch:  dispatchTouchEvent: 0
ViewTouch: onTouchEvent: down 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onInterceptTouchEvent: 2
ViewTouch:  dispatchTouchEvent: 2
ViewTouch: onTouchEvent: move 2
...
ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onInterceptTouchEvent: 1
ViewTouch:  dispatchTouchEvent: 1
ViewTouch: onTouchEvent: up 1
  • ViewTouch 的 onTouchEvent 返回 false
ViewGroupTouch:  dispatchTouchEvent: 0
ViewGroupTouch: onInterceptTouchEvent: 0
ViewTouch:  dispatchTouchEvent: 0
ViewTouch: onTouchEvent: down 0
ViewGroupTouch: onTouchEvent: down 0

ViewGroupTouch:  dispatchTouchEvent: 2
ViewGroupTouch: onTouchEvent: move 2

...
ViewGroupTouch:  dispatchTouchEvent: 1
ViewGroupTouch: onTouchEvent: up 1
TouchActivity: viewGroupTouch,,,onClick: 

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