Activity–ViewGroup–view
当我们点击一个Button的时候,事件其实是从Activity–Layout–button进行传递的,在传递的过程中可以对事件进行拦截、分发和消费。
默认返回值super是一种隧道回传机制,对事件不进行拦截
返回值是true表示当前view自己消费掉
返回值是false表示当前view不消费,回传到上一级

public class MyLinearLayout extends LinearLayout {
public MyLinearLayout(Context context) {
super(context);
}

public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
System.out.println("MyLinearLayout.dispatchTouchEvent");
return super.dispatchTouchEvent(ev);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
System.out.println("MyLinearLayout.onInterceptTouchEvent");
return true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
System.out.println("MyLinearLayout.onTouchEvent");
return super.onTouchEvent(event);
}
}
Touch 事件相关方法      方法功能        ViewGroup            View              Activity     
public boolean dispatchTouchEvent(MotionEvent ev) 事件分发 Yes Yes Yes
public boolean onInterceptTouchEvent(MotionEvent ev) 事件拦截 Yes Yes No
public boolean onTouchEvent(MotionEvent ev) 事件响应 Yes Yes Yes