读《android开发艺术探索》笔记一:View的事件分发机制
来源:互联网 发布:mac打不开英雄联盟 编辑:程序博客网 时间:2024/05/20 16:14
View的事件分发机制:对于一个根viewgroup来说,点击事件产生后,首先会传递给它,这是它的dispatchTouchEvent就会被调用,如果这个viewGroup的OnInterceptTouchEvent方法返回true就表示它要拦截当前事件,接着事件就会交给这个viewGroup处理,即它的onTouchEvent方法就会被调用;如果这个ViewGroup的OnInterceptTouchEvent方法返回false就表示它不拦截当前事件,这时当前事件就会继续传递给它的子元素,接着子元素的dispatchTouchEvent方法就会被调用,如此反复直到事件被最终处理。
当一个View需要处理事件时,如果它设置了OnTouchListener,那么OnTouchListener中的onTouch方法会被回调。这时事件如何处理还要看onTouch的返回值,如果返回false,则当前view的onTouchEvent方法会被调用,反之不调用。由此可见,给view设置的OnTouchListener,其优先级比onTouchEvent要高,在onTouchEvent方法中,如果当前设置的有OnClickListener,那么它的onClick方法会被调用。可以看出,平时我们常用的OnClicKListener,其优先级最低,即处于时间传递的尾端。
一个点击事件的产生,它的传递过程遵循如下顺序:activity->window->view,事件总是先传递给activity,activity再传递给windows,最后windwos再传递给顶级view。换个思路,假设一个事件是一个难题,这个难题最终被上级领导分给了一个程序员去处理,结果这个程序员搞不定(onTouchEvent返回了false),现在该怎么办呢?难题必须要解决,那只能交给水平更高的上级解决(上级的onTouchEvent被调用),如果上级再搞不定,那只能交给上级的上级去解决,就这样将难题一层层的向上抛,这是企业内部一种很常见的处理问题的过程。
这里我画了一个流程图,如果理解有错误,还请指出一起学习
- 读《android开发艺术探索》笔记一:View的事件分发机制
- View的事件分发机制《android开发艺术与探索》
- Android 开发艺术探索笔记-View的事件分发
- Android中View的事件分发机制——Android开发艺术探索笔记
- Android开发艺术探索学习-View的事件分发机制(一)
- View的事件分发机制——Android开发艺术探索笔记
- View的事件分发机制(Android开发艺术探索学习笔记)
- 《Android开发艺术探索》之View事件分发机制
- 《Android开发艺术探索》——View事件分发机制
- 《Android开发艺术探索》--View事件分发
- Android——View的事件分发机制(学习Android开发艺术探索)
- Android 读书笔记:View的事件分发机制 源码详解 ------《Android开发艺术探索》
- Android开发艺术探索学习-View的事件分发机制(二)
- 【开发艺术笔记】 View 事件分发机制
- Android开发艺术探索笔记(11)- View的事件分发
- Android View的事件分发机制探索
- Android View的事件分发机制探索
- Android View的事件分发机制探索
- 逗号表达式 result = (a+4,b+3,a+b) ...result = a+b;
- 关于block的一些知识
- 2016继续
- [课上练习]对CreateFile函数的跟踪
- Tabhost与Fragment的结合使用
- 读《android开发艺术探索》笔记一:View的事件分发机制
- 技术团队底蕴判定
- 鸟哥私房菜学习笔记-1
- mariadb 10.1.10安装
- Linux大数据开发基础:第五节:vi、vim编辑器(一)
- 天声人語 20160104 余得なしのカレンダー
- 文章标题
- 嵌入式产品使用核心模块相对单板电脑的好处
- (三)黑马程序员——面向对象2