1.onTouch:是Android系统中整个事件机制的基础。Android中的其他事件,如onClick、onLongClick等都是以onTach为基础的,优先于onClick.onLongClick执行,onTouch返回true,不再往下执行传递了。
2.onTouch:优先于onTouchEvent方法执行。如果在onTouch方法中通过返回true将事件消费掉,onTouchEvent将不会再执行了。
3.onTouch: 执行的两个条件:onTouchListener 监听不为null 且 当前点击控件必须为 enable的。如时果控件是 非enable的,给它注册onTouch事件将永远得不到执行。对于这一类控件,如果我们想要监听它的touch事件,就必须通过在该控件中重写onTouchEvent方法来实现。
4.层次传递:如果在action_down 时,返回了false,那么后面的都不会得到执行了。 当dispatchTouchEvent在进行事件分发的时候,只有前一个action返回true,才会触发后一个action。
5. android事件分发是先传递到ViewGroup,再由ViewGroup传递到View的。
6.在ViewGroup中可以通过onInterceptTouchEvent方法对事件传递进行拦截,onInterceptTouchEvent方法返回true代表不允许事件继续向子View传递,返回false代表不对事件进行拦截,默认返回false
7.子View中如果将传递的事件消费掉,ViewGroup中将无法接收到任何事件。