android 中可以相应事件的类有 Activity ViewGroup View这三类。
事件的分发顺序为由上到下 会依次调用 。中间可被打断 即 ViewGroup的
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { Log.e(TAG,"onInterceptTouchEvent"); //return false; return super.onInterceptTouchEvent(ev); }方法返回true。该ViewGroup 下面的view将不会收到这个事件。
如果viewGroup的
@Override public boolean dispatchTouchEvent(MotionEvent ev) { Log.e(TAG,"dispatchTouchEvent"); //return super.dispatchTouchEvent(ev); return false; }这个函数返回false,这包括它本身也无法响应该事件,事件交由上层处理
二:事件的消费由下往上传递:当最底层的view消费了事件后,上层无法再接收到该事件。OnEvent()返回true 表示消费该事件。
疑问:
@Override public boolean onTouchEvent(MotionEvent event) { Log.e(TAG,"onTouchEvent"); //return false; return super.onTouchEvent(event); }这个方法返回true时该控件的onclick事件无法相应?但是return super.onTouchEvent(event ) 可以相应?明天再看。