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事件和事件拦截要注意的以下几点,如图所示:
通过我们用户在屏幕上的行为,驱动给我们算出来的数据,再经过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事件和事件拦截要注意的以下几点,如图所示:
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories