Android中事件的处理,及其分发

1.Android 中常用事件类型?

1)onClick
2)onTouch
3)onKey

2.Android 中事件元素及处理过程?

1)事件源(在哪个view控件上触发事件)
2)事件监听对象(观察者对象,用于观察或监听事件源状态的变化)
3)事件处理函数(回调函数,此函数在事件发生时会由系统回调执行)
4)具体事件(触摸,滚动,点击,.....)

3.Android 中事件的分发机制?

Android中任何view在处理事件时首先会执行dispatchTouchEvent方法由此方法开始进行事件分发处理.

  1. 假如此view上添加了onTouch事件那么事件分发时首先会执行OnTouchListener的onTouch方法
  2. 假如此方法返回值为true表示事件被消费,后续其它事件不在继续处理,
  3. 假如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):事件响应

你可能感兴趣的:(Android中事件的处理,及其分发)