关于事件拦截机制-自己的理解
2016-10-07 14:08
141 查看
事件传递机制:
事件是指触摸事件,都是发生在控件身上的,也就是说发生在view身上.我们需要知道view里面有哪些类可以处理事件.
首先有一个方法 dispatchTouchEvent方法,它分发事件就是直接把事件传递给自己的onTouch方法.因为view没有孩子,只需要自己处理就可以了.onTouchEvent
一个是分发事件一个是处理事件
安卓里面还有一个空间 viewGroup
是一个view的容器
继承view,所有view的两个方法也会继承
看下它的dispatchTouchEvent 这个里面会去做真正的事件分发,它里面会有一个for循环,找孩子,把事件分发给还在
然后,在分发事件之前会调用一个拦截事件的方法 onInterceptTouchEvent
这个方法默认返回的是false,表示默认不拦截事件.view没有孩子控件,没有这个方法
安卓里面的事件是分组的,down move up 这是一组事件
一组事件的传递机制
从外往内传递事件来了 ,最外层viewGroup先得到事件,首先判断自己是否需要拦截事件,默认是不拦截,事件就往下传递了,做for循环,根据down的时候得到的xy坐标,传递给对应的子控件.
最终传递到view view在onTouch里面返回true表示需要处理事件,如果这个时候返回false,就把事件往上传递. 传到上面的viewGroup,看自己的onTOuchEvent返回什么
viewGroup的onTOuchEvent方法会在什么时候调用? 1.一开始自己拦截事件就直接走这个方法;2.孩子不需要事件,会走自己的方法;
事件是指触摸事件,都是发生在控件身上的,也就是说发生在view身上.我们需要知道view里面有哪些类可以处理事件.
首先有一个方法 dispatchTouchEvent方法,它分发事件就是直接把事件传递给自己的onTouch方法.因为view没有孩子,只需要自己处理就可以了.onTouchEvent
一个是分发事件一个是处理事件
安卓里面还有一个空间 viewGroup
是一个view的容器
继承view,所有view的两个方法也会继承
看下它的dispatchTouchEvent 这个里面会去做真正的事件分发,它里面会有一个for循环,找孩子,把事件分发给还在
然后,在分发事件之前会调用一个拦截事件的方法 onInterceptTouchEvent
这个方法默认返回的是false,表示默认不拦截事件.view没有孩子控件,没有这个方法
安卓里面的事件是分组的,down move up 这是一组事件
一组事件的传递机制
从外往内传递事件来了 ,最外层viewGroup先得到事件,首先判断自己是否需要拦截事件,默认是不拦截,事件就往下传递了,做for循环,根据down的时候得到的xy坐标,传递给对应的子控件.
最终传递到view view在onTouch里面返回true表示需要处理事件,如果这个时候返回false,就把事件往上传递. 传到上面的viewGroup,看自己的onTOuchEvent返回什么
viewGroup的onTOuchEvent方法会在什么时候调用? 1.一开始自己拦截事件就直接走这个方法;2.孩子不需要事件,会走自己的方法;
相关文章推荐
- 关于Android事件传递机制自己的理解
- 快速理解android事件传递拦截机制概念
- ucosII 关于事件控制块,信号量,邮箱,消息队列,自己的理解。
- 关于Android事件分发机制的理解
- 【Android View事件分发机制】关于拦截事件的注意点
- Android事件分发机制-自己理解以后的阐述
- 深入理解JAVA事件机制
- 关于 ++i*--i 问题自己的理解
- 关于委托和事件的理解
- 对.NET Framework "事件"机制理解的代码分析
- 关于java方法多线程访问自己的理解
- JAVA的事件机制理解
- [转]对.NET Framework "事件"机制理解的代码分析
- 面向对象的编程:关于对象的 属性、方法和事件 的理解
- 关于java异常处理机制的深入理解(转)
- 关于委托和事件的理解
- 自己动手用委托模拟.net中的事件机制
- 关于java异常处理机制的深入理解
- 关于c#中的事件处理机制
- 深入理解.net的事件与委托机制