2020-04-17

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()执行

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容