安卓事件传递机制分析 | Ohmer's Blog
这篇文章基于Android4.2的源码分析得出,写的比较早,拿出来晒晒。
这片文章讲解的事件传递的起源从dispatchTouchEvent(event)开始,根据事件的处理流程逐渐展开,直至事件被可预料的处理掉结束。
先贴一张个人总结的事件传递的流程图,如果可以将这张图清楚的理解,下面的文章就可以不用看了,因为这篇文章的主要内容也就是围绕这幅图展开。
ViewGroup中的事件处理在用户触碰屏幕后,经过系统一系列处理后,会分发到的View的dispatchTouchEvent方法中,事件将在这个方法中进行分发,决定该事件的去向。
由于安卓的事件处理顺序是由外至里的,既外层视图最先拿到对应的事件,既事件会优先传递到ViewGroup的dispatchTouchEvent方法中。在自定义视图中可以重写dispatchTouchEvent这个方法定义事件的进一步分发,本文分析的是ViewGroup默认的分发机制。
在ViewGroup中默认先将事件分发给onInterceptTouchEvent方法,通过该方法的返回来判断当前视图是否中断事件的进一步分发,如果onInterc...阅读全文
这片文章讲解的事件传递的起源从dispatchTouchEvent(event)开始,根据事件的处理流程逐渐展开,直至事件被可预料的处理掉结束。
先贴一张个人总结的事件传递的流程图,如果可以将这张图清楚的理解,下面的文章就可以不用看了,因为这篇文章的主要内容也就是围绕这幅图展开。
ViewGroup中的事件处理在用户触碰屏幕后,经过系统一系列处理后,会分发到的View的dispatchTouchEvent方法中,事件将在这个方法中进行分发,决定该事件的去向。
由于安卓的事件处理顺序是由外至里的,既外层视图最先拿到对应的事件,既事件会优先传递到ViewGroup的dispatchTouchEvent方法中。在自定义视图中可以重写dispatchTouchEvent这个方法定义事件的进一步分发,本文分析的是ViewGroup默认的分发机制。
在ViewGroup中默认先将事件分发给onInterceptTouchEvent方法,通过该方法的返回来判断当前视图是否中断事件的进一步分发,如果onInterc...阅读全文