触摸事件分发
DecorView.java
public boolean dispatchTouchEvent(MotionEvent ev) {
final Window.Callback cb = mWindow.getCallback();
return cb != null && !mWindow.isDestroyed() && mFeatureId < 0 ? cb.dispatchTouchEvent(ev) : super.dispatchTouchEvent(ev);
}
这里的Window.Callback其实就是Activity:
public class Activity extends ContextThemeWrapper implements Window.Callback,...{
即回调到Activity.dispatchTouchEvent()
总结:收到了ACTION_DOWN,就会收到 ACTION_MOVE、ACTION_UP 等后续的事件的前提条件就是必须消费该事件,也就是返回true。如果仅仅是在ACTION_DOWN返回true,其他事件返回super,则其他事件没被消费,会继续向上回溯,但是一定会经过消费控件本身
Android触摸事件全过程分析:由产生到Activity.dispatchTouchEvent() - 简书
[图片上传失败...(image-b8ca09-1587094097878)]
[图片上传失败...(image-9d8e0-1587094097878)]
Android触摸事件分发机制详解_移动开发_Water的博客-CSDN博客
[图片上传失败...(image-4dd20e-1587094097878)]
[图片上传失败...(image-488e80-1587094097878)]
[图片上传失败...(image-4f849a-1587094097878)]
一文了解Android中路由(Router)的实现 - 简书
[图片上传失败...(image-362ce-1587094097878)]
[图片上传失败...(image-18f9a1-1587094097878)]
Android 触摸事件分发机制(一)从内核到应用 一切的开始 | viseator's blog
[图片上传失败...(image-552505-1587094097878)]
[图片上传失败...(image-b6fc91-1587094097878)]
Android 消息机制(一)消息队列的创建与循环的开始 Looper与MessageQueue | viseator's blog
[图片上传失败...(image-120745-1587094097877)]
Android 触摸事件分发机制(三)View触摸事件分发机制 | viseator's blog
[图片上传失败...(image-46fb2e-1587094097877)]
Input系统—事件处理全过程 - Gityuan博客 | 袁辉辉的技术博客
[图片上传失败...(image-e47786-1587094097877)]
Input系统—UI线程 - Gityuan博客 | 袁辉辉的技术博客
[图片上传失败...(image-ccc589-1587094097877)]
[图片上传失败...(image-667833-1587094097877)]
dispatchTouchEvent事件分发浅析(二)分发 - 云+社区 - 腾讯云
[图片上传失败...(image-32d88f-1587094097877)]
dispatchTouchEvent事件分发浅析(四)Intercept拦截 - 云+社区 - 腾讯云
网友评论