这篇文章会对android 的 触摸事件做一个简要的分析.
下面是我重做的一些图片,用以分析事件的传递过程.
主要分析viewGroup和View之间的事件传递,更加具体的细节以后再补充.
下面这张图描述的是是 ACTION_DOWN
的事件传递过程.详细描述了关键方法的调用过程.
其他的事件会因 ACTION_DOWN
事件中各个方法的返回值不同而有不同的行为,比如跳过某些方法.
关键要记住几点
-
ACTION_DOWN
事件务必返回true - dispatchTouchEvent()是事件的出发点
- onTouchEvent()是事件的最后监听,其他事情处理完才处理的...
- ViewGroup可以拦截事件
- View可以通过getParent().requestDisallowInterceptTouchEvent(true);禁止父View拦截事件