事件分发机制

来源:互联网 发布:淘宝网虎牌保温杯 编辑:程序博客网 时间:2024/06/07 03:13

对于安卓事件传递和消费机制,他给我们提供了3个方法,DispatchTouchEvent(),OnInterceptTouchEvent()和OnTouchEvent():

当监听到事件时,首先由Activity捕获;开始进入事件分发流程.

DispatchTouchEvent():

如果返回的是true,表明事件不会再本层进行分发并且在事件分发自身中已经被消费,并且事件已经完结;

如果返回false,表明事件也不会在本层进行分发,但他会交给上层控件的onTouchEvent()方法进行消费;

如果本层控件已经是activity,那么会被系统消费或处理.

如果返回super,那么事件就会交给本层的onInterceptTouchEvent()进行处理.

OnInterceptTouchEvent():

如果返回true,则表示事件进行拦截,交给本层的onTouchEvent()方法进行消费;

如果返回false或者super,就不会对事件进行拦截,都会交给子view的disPatchTouchEvent()方法进行处理.

OnTouchEvent():

如果返回true,表示TouchEvent处理完事件后消费了本次事件,事件也将终结,不会再有后续的冒泡

如果返回false,表示TouchEvent处理完事件后继续向上一层的view冒泡,交给上一层的OnTouchEvent进行处理.

如果返回super,则默认的处理逻辑和false一样,也是本层处理完时间后交给上一层处理

0 0
原创粉丝点击