Android 事件分发机制

主要理解几个方法的调用顺序,分发的先后
dispatchTouchEvent()
onInterceptTouchEvent()
onTouchEvent()

接下来一图胜千言

事件分发流程.jpg

可以看到 dispatchTouchEvent() 贯穿事件传递,并且主导了事件的流向。

需要特别指出的是 ,如果:
  • Activity dispatchTouchEvent()方法针对down事件不分发(返回false)。

  • ViewGroup 中dispatchTouchEvent()方法针对down事件不分发,ViewGroup 中onInterceptTouchEvent()针对down事件拦截。

  • View中dispatchTouchEvent()方法针对down事件不分发。

以上几种情况都会导致子view不能响应up 和move事件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。