一张图简单看懂View事件的分发机制

在Android中View的事件分发机制是一个很重要的知识点,为了思路更清晰就稍做了下整理,如有错误还请指教。

一张图简单看懂View事件的分发机制_第1张图片

1.首先事件从上层Activity开始进行分发给ViewGroup的dispatchTouchEvent

2.ViewGroup中的dispatchTouchEvent有三种结果:

   <1>返回true 事件终止
   <2>返回fase 事件将不分发,不往下传递,回溯至Activty也就是父级中的onTouchEvent中
   <3>返回super.dispatchTouchEvent 相当于调用自身的onInterceptTouchEvent询问是否拦截

3.ViewGroup中的onInterceptTouchEvent同样三种结果代表含义为:

  <1>返回true 将此事件拦截自己调用自身的onTouchEvent
  <2>返回fase与返回super时结果一样代表不拦截此事件,将些事件往下传递至View的dispatchTouceEvent

4.View中dispatchTouceEvent中结果所代表的含义为:

<1>返回true 事件终止
<2>返回fase 事件将不分发,不往下传递,回溯至父级也就是ViewGroup中的onTouchEvent中
<3>返回super.dispatchTouchEvent 因为View中没有拦截器 所以此时相当于调用自身的onTouchEvent

5.View中onTouchEvent结果代表的含义:

<1>返回true 事件终止
<2>返回fase或super 事件将往上层传递,传递给父级中的onTouchEvent

最后,在此感谢网络中无私分享的大神们。

参考资料:图解 Android 事件分发机制

你可能感兴趣的:(一张图简单看懂View事件的分发机制)