1.对于**dispatchTouchEvent()**方法:
return true:消费掉事件,终止传递。
return false: 将事件传递给上一级View的onTouchEvent()方法。如果是Activity的dispatchTouchEvent()方法,则也是消费掉事件,终止传递。
return super:如果是Activity,则传给下一级view(viewGroup)的dispatchTouchEvent;如果是ViewGroup,则传给自己的onInterceptTouchEvent();如果是View,则传给自己的onTouchEvent().
2…对于**onTouchEvent()**方法:
return true:消费掉事件,终止传递。
return false/super:将事件传递给上一级view的onTouchEvent()方法。
3.对于**onInterceptTouchEvent()**方法:
return true:将事件传递给ViewGroup自己的onTouchEvent()方法处理。
return false/super:将事件传递给下一级View的dispatchTouchEvent()。
那么为什么只有ViewGroup有onInterceptTouchEvent()方法呢,从上面的整个触摸事件分发传递机制我们可以发现,ViewGroup本身的dispatchTouchEvent()方法无论返回什么都不能将事件传递给自己的onTouchEvent()方法处理,那就只好设计了一个这样子的方法,作为拦截器,拦截事件交给自己处理了。只要onInterceptTouchEvent()returntrue就可以实现触摸事件拦截。