1.事件分发机制主要有三个方法:
- dispatchTouchEvent(MotionEvent ev)
- onInterceptTouchEvent(MotionEven ev)
- onTouchEvent(MotionEven ev)
2.View(如TextView,Button,Image),ViewGroup(如RelativeLayout,LinearLayout)
- View只有两个方法dispatchTouchEvent(MotionEvent ev),onTouchEvent(MotionEven ev)
- ViewGroup则有三个方法dispatchTouchEvent(MotionEvent ev),onInterceptTouchEvent(MotionEven ev),onTouchEvent(MotionEven ev)
3.dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent触发事件区别
- dispatchTouchEvent,onTouchEvent有down、move、up事件
- onInterceptTouchEvent只有down事件,没有move、up事件
4.dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent三个方法都是boolen类型,当返回值为true时,即return true时的区别
- dispatchTouchEvent返回值为true时,表示该事件自己消费,不再往下分发事件(有down、move、up事件)
- onInterceptTouchEvent返回值为true时,表示对该事件进行拦截,自己消费,也不再往下分发事件(只有down事件)
- onTouchEvent返回值为true时,表示事件自己消费,不再往上传递(有down、move、up事件)
- 具体的例子可以看这个:https://blog.csdn.net/Bingsman/article/details/86427917
|