Android 事件分发机制
方法执行顺序
boolean dispatchTouchEvent(MotionEvent ev):事件分发,Activity类,View 类都有的方法
boolean oninterceptTouchEvent(MotionEvent event): 事件拦截,只有ViewGroup 类才有的方法
boolean onTouch(View v,MotionEvent event): 这不是View 自带的方法,要通过SetOnTouchListener() 来添加OnTouchListener 然后金鱼的一个方法。
boolean onTouchEvent(MotionEvent event ): 事件消费,Activity类,VIew 类都有的方法
事件包括有:
MotionEvent.ACTION_DOWN:按下
MotionEvent.ACTION_MOVE:移动
MotionEvent.ACTION_UP:松开
MotionEvent.ACTION_CANCEL:事件被上层拦截
dispatchTouchEvent: 有事件发生时,先进入这个方法。return false : 事件不会被分发。事件会被传递回上一层的view 的onTouch方法、onTouchEvent方法。如果View 没有添加onTouchlistenter ,那事件就会直接到 onToucheEvent;return true:该事件在这处理,不会继续传递。
onTouch() 优先于onClick()执行