Android事件传递机制总结
Android中控件的分类
-
Activity
dispatchTouchEvent(MotionEvent e)
onTouchEvent(MotionEvent e) -
ViewGroup(View)——可以添加子组件
dispatchTouchEvent(MotionEvent e)
onInterceptTouchEvent(MotionEvent e)
onTouchEvent(MotionEvent e) -
TextView(View)——不能添加子组件
onTouchEvent(MotionEvent e)
事件传递介绍
-
Activity
dispatchTouchEvent(MotionEvent e)
onTouchEvent(MotionEvent e) -
ViewGroup(View)——可以添加子组件
dispatchTouchEvent(MotionEvent e)
true——自己消费,不向上和向下传递
false——自己不处理,回传给父组件的onTouchEvent方法处理
super——调用自己的onInterceptTouchEvent处理,是否拦截事件
onInterceptTouchEvent(MotionEvent e)
true:自己消费,调用自己的onTouchEvent()
false/super:默认往下传递
onTouchEvent(MotionEvent e)
true:自己消费
false/super:回传 -
TextView(View)——不能添加子组件
onTouchEvent(MotionEvent e)
ture——事件消费不回传 false/super——事件回传
Button事件的传递
由onTouchEvent事件进行触摸判断
在松开的状态,去判断是否调用单击事件(是否赋值了单击事件)