您的位置:首页 > 移动开发 > Android开发

Android的事件分发

2015-11-12 19:07 281 查看
1.事件从哪里来
通过我们用户在屏幕上的行为,驱动给我们算出来的数据,再经过android系统算出来一系列的事件类型。

2.事件分发所涉及到的方法

1.事件分发 DispatcherTouchEvent(MotionEvent event );
2.事件处理 onTochEvent方法(MotionEvent event)
3.dispatchTouchEvent和OntouchEvent方法默认返回的都是false值

3.down事件的分发和处理

对于事件分发的方法调用:像一颗树一样,从根部往它的分支依次按照层级传递;
对于事件处理的方法调用:像一颗树一样,从分支依次往根部调用;
如果一个view的DispatchtochEvent如果直接返回false的话, 它应该交给它的上层的OntouchEvent方法处理;
如果一个View的dispatchTochEvent方法返回的是super.dispatchTouchEvent的话,它应该交给自己的ontouchEvent处理;
如果一个View的dispatchTochEvent方法直接返回true的话,那么它就终止传递,不会调用任何一个view的onTouchEvent;
如果一个View的onTouchEvent方法返回false,它会紧接着调用上一层的onTouchEvent方法;如果一个View的onTouchEvent方法返回true, 那么事件传递终止;

4.down事件的处理图



5.move事件

1.如果说你消费了down事件才能接收move事件
2.如果move事件在传递过程中没有被消费的话,那么下一个move还是会继续传递
3.如果move事件在传递过程中没有被消费的话,那么会调用Activity的onTouchEvent(MotionEvent event )
4.如果down事件在传递过程中被消费了,那么每一个 move事件都会被传递
5.如果上一个down事件被谁消费了,谁才有资格接受到move事件

6.move事件和事件拦截要注意的以下几点,如图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息