1.Android 中常用事件类型?
1)onClick
2)onTouch
3)onKey
2.Android 中事件元素及处理过程?
1)事件源(在哪个view控件上触发事件)
2)事件监听对象(观察者对象,用于观察或监听事件源状态的变化)
3)事件处理函数(回调函数,此函数在事件发生时会由系统回调执行)
4)具体事件(触摸,滚动,点击,.....)
3.Android 中事件的分发机制?
Android中任何view在处理事件时首先会执行dispatchTouchEvent方法由此方法开始进行事件分发处理.
- 假如此view上添加了onTouch事件那么事件分发时首先会执行OnTouchListener的onTouch方法
- 假如此方法返回值为true表示事件被消费,后续其它事件不在继续处理,
- 假如onTouch方法返回为false,那么此时会调用view的onTouchEvent
方法继续事件分发。
Android 中在处理任何View的事件时,首先会执行这个view所在的容器(ViewGroup)的dispatchTouchEvent的方法进行事件分发,然后才会执行此view的dispatchTouchEvent方法进行事件分发.
- 假如不希望view的dispatchTouchEvent方法执行,可以重写view所在容器的onInterceptTouchEvent方法进行事件拦截,此方法默认返回值为false,可以将其改为true(表示要进行拦截)。
4.Android 中事件分发相关方法?
1)dispatchTouchEvent(MotionEvent ev) :事件分发
2)onInterceptTouchEvent(MotionEvent ev):事件拦截
3)onTouchEvent(MotionEvent event):事件响应