android事件分发流程是甚么
Android事件分发流程主要包括以下几个步骤:
1. 事件产生:用户在屏幕上进行触摸、点击、滑动等操作时,会产生相应的事件。
2. 事件传递:事件首先由顶层的ViewGroup接收,然后依照View树的层次结构顺次传递给各个View,直到找到最适合的View处理该事件。
3. 事件分发:被传递的事件会先进入View的dispatchTouchEvent()方法进行分发。在该方法中,会根据事件类型,判断是否是需要调用onInterceptTouchEvent()方法来判断是否是拦截事件。
4. 事件拦截:如果需要拦截事件,则会调用onInterceptTouchEvent()方法,返回true表示拦截,返回false表示不拦截。如果拦截事件,则会将该事件交给自己的onTouchEvent()方法处理;否则,继续传递给子View。
5. 事件处理:如果事件没有被拦截,会继续传递给子View的dispatchTouchEvent()方法进行分发,重复步骤3和4。
6. 事件消费:当事件传递到最适合的View时,会调用该View的onTouchEvent()方法来处理事件,履行相应的逻辑。
7. 事件结束:事件的处理进程结束后,会返回结果给父View或Activity,事件分发流程结束。
需要注意的是,事件分发流程可能会遭到各种因素的影响,例如View的可点击性、是否是设置了触摸监听器等。另外,还可以通太重写ViewGroup的onInterceptTouchEvent()方法和View的onTouchEvent()方法来改变事件分发流程。
TOP