分发过程
事件分发过程由三个方法共同完成:
dispatchTouchEvent
方法返回值为true表示事件被当前视图消费掉;返回为super.dispatchTouchEvent表示继续分发该事件,返回为false表示交给父类的onTouchEvent处理。
onInterceptTouchEvent
方法返回值为true表示拦截这个事件并交由自身的onTouchEvent方法进行消费;返回false表示不拦截,需要继续传递给子视图。如果return super.onInterceptTouchEvent(ev), 事件拦截分两种情况:
- 如果该View存在子View且点击到了该子View, 则不拦截, 继续分发给子View处理, 此时相当于return false。