(1)dispatchTouchEvent(MotionEvent event)
决定touch事件是否派发。在View和Activity中都有这个方法。
(2)onTouchEvent(MotionEvent event)
如果返回true,则表示这个事件被消费掉,如果返回false则将事件向上一层父容器传递。
(3)onInterceptTouchEvent(MotionEvent ev)
是否拦截touch事件,如果拦截,则不传递事件到子View,否则事件继续传递给子View,所以这个接口只有ViewGroup的派生类才有,View是没有该接口的。
自定义ViewGroup,和View的子类,重写消息传递的几个方法:
public class TouchView extends View {
private static final String TAG = TouchView.class.getSimpleName();
public TouchView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {<