Android事件分发简单总结

来源:互联网 发布:斗鱼抢鱼丸软件安卓版 编辑:程序博客网 时间:2024/05/19 16:19

/**
* onTouchEvent()表示对事件处理的方法
* 如果事件传播到该类中 表示该类调用onTouchEvent()方法处理该事件
* 如果该函数返回false 表示不进行事件的处理 将事件进行回传(回传给上层的view或者是viewGroup
* 由上层的view调用自己的onTouchEvent()方法处理,如果上层的view也未进行事件处理onTouchEvent
* 返回false那么事件消失 并且接受不到下一次事件 例如:没有处理down事件就不能处理up事件)
* 如果该方法返回true 表示对当前的事件进行处理 事件只能被处理一次
* 注意:onTouchEvent()返回false与返回super.onTouchEvent(event) 意思一样
*/
/****dispatchTouchEven**t 分发事件的方法 不管是view还是viewGroup都具有分发事件的函数
* 一般情况ViewGroup中将事件分发给子view View中将事件分发给自己
* 当事件触发时activity将事件传递到layout layout调用自己的分发方法将事件分发给具体的子控件
* 子控件也具有分发方法 但是子控件只能分发给自己
* 接着获取分发的事件调用onTouchEvent()方法处理事件
* 如果返回true 表示事件会分发给当前的view的dispatchTouchEvent进行处理 并且会停止事件向下传递分发
* 一般情况都不会修改返回值 改变正常的事件分发流程
*/
/**
* onInterceptTouchEvent事件拦截的方法
* 事件传递给layout 如果layout不进行拦截 通过拦截的方法 事件就被分发给具体的子控件,
* 子控件就会执行自己的分发和onTouchEvent()方法处理事件 如果子控件的onTouchEvent()方法并且对
* 事件处理 事件回传 执行layout中的onTouchEvent() 如果layout中也返回false 事件消失; 如果
* layout中onTouchEvent()返回true 那么后续的事件也会直接交给layout处理
*
* 返回true 表示拦截当前的事件并且交给当前视图的onTouchEvent()处理
* 返回false 表示不拦截 按照正常的事件传播机制
*/

0 0
原创粉丝点击