正式开始之前的准备工作:
之前也写过一篇《android事件拦截处理机制详解》的博客,通过博客的名字也可以知道那篇博客只是分析了android控件View对事件的拦截和处理,简单的总结如下:
1)父View优先拦截当前事件,拦截不成功就让子View对当前事件进行拦截。
2)如果拦截成功的话,就会沿着子view到父View的路径查找onTouchEvent返回true的那个子View,让该子View对该事件进行处理;
3)同时如果某一个View对当前事件拦截成功的话,当前事件就不会继续分发给这个View的子View。
一直在说事件,那么事件到底是指什么?这里所说的事件是指手指按下(down)、移动(move)、抬起(up)此为一个事件集合或者说是事件序列,从手指接触屏幕开始到手指离开屏幕结束。所以本篇所说的事件序列或者事件集合是指从手指刚接触屏幕到离开屏幕的那一瞬间产生的各个事件:
事件序列为:ACTION_DOWN-->ACTION_MOVE-->ACTION-->...->ACTION_UP事件。
上面的总结很简单,详细的分析以及说