android View属性之dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent
2016-07-12 23:20
531 查看
前言:辞职也一周了,在家里宅了5天,找了两工作,找得人心灰意冷的,一点信心都没有。宅在家里连游戏都不打了,看起动漫来了,在这里强烈推荐一部动漫《Re:从零开始的异世界生活》,把男主角虐待,绝对值得你看!!!现在开始走入正轨,继续我的研究,工作没找到也不能荒废学习,这里讲解dispatchKeyEvent,onTouchEvent,onInterceptTouchEvent这个三个方法
————再苦再难,居然选着了这个坑,就要努力爬,明天继续加油找工作。
android View属性之dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent
这里为啥要把这三个方法一起讲呢,先不解释,上盗的图:
对,这就是大名顶顶的事件的分发,拦截,响应,简单的说,就是对你手指在屏幕上按下,移动,抬起过程中,对应位置的view是不是对其响应,上面的yes表示有该方法,no表示没有该方法。
对于这几个方法我也看了好多博客,都看得懵懵懂懂的,看样子读了不写也没效果。我对于多个方法要做比较,我觉得最好的入口是看他们的执行顺序,我这里研究的顺序是Activty,View,ViewGroup。
一,Activty:
1,dispatchTouchEvent和onTouchEvent都返回super同时点击位空白位置执行顺序
2,dispatchTouchEvent和onTouchEvent都返回super同时点击设置了点击事件的空间位置执行顺序
可以发现没有执行onTouchEvent,先不解释
3,dispatchTouchEvent为super,onTouchEvent设为false或者true效果同1,2
4,dispatchTouchEvent设为true或者false过后,不再执行onTouchEvent,只执行dispatchTouchEvent,同时所有View点击事件失效。
二,ViewGroup:
这里继承的RelativeLayout
1,所有函数都返回super,点击空白没控件位置
2,所有函数都返回super,点击没设点击事件的控件
3,所有函数都返回super,点击设有点击事件的控件
4,ViewGroup的dispatchTouchEvent设置为true,其余函数都返回super,点击所有位置都一样
5,ViewGroup的dispatchTouchEvent设置为false,其余函数都返回super,点击所有位置都一样,View控件点击事件失效
5,ViewGroup的onInterceptTouchEvent设置为true,其余函数都返回super,点击所有位置效果同第1条,但是,View控件的点击事件失效。
6,ViewGroup的onInterceptTouchEvent设置为false,其余函数都返回super,点击空白、没设点击事件控件、设了点击事件控件,效果图以此如下:
7,ViewGroup的onTouchEvent设置为true,其余函数都返回super,点击空白处和点击没设点击事件控件一样,点击设置了点击事件的控件效果图依次:
8,ViewGroup的onTouchEvent设置为false,其余函数都返回super,点击空白处和点击没设点击事件控件一样效果同1,设了点击事件控件效果同3.
————再苦再难,居然选着了这个坑,就要努力爬,明天继续加油找工作。
android View属性之dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent
这里为啥要把这三个方法一起讲呢,先不解释,上盗的图:
对,这就是大名顶顶的事件的分发,拦截,响应,简单的说,就是对你手指在屏幕上按下,移动,抬起过程中,对应位置的view是不是对其响应,上面的yes表示有该方法,no表示没有该方法。
对于这几个方法我也看了好多博客,都看得懵懵懂懂的,看样子读了不写也没效果。我对于多个方法要做比较,我觉得最好的入口是看他们的执行顺序,我这里研究的顺序是Activty,View,ViewGroup。
一,Activty:
1,dispatchTouchEvent和onTouchEvent都返回super同时点击位空白位置执行顺序
2,dispatchTouchEvent和onTouchEvent都返回super同时点击设置了点击事件的空间位置执行顺序
可以发现没有执行onTouchEvent,先不解释
3,dispatchTouchEvent为super,onTouchEvent设为false或者true效果同1,2
4,dispatchTouchEvent设为true或者false过后,不再执行onTouchEvent,只执行dispatchTouchEvent,同时所有View点击事件失效。
二,ViewGroup:
这里继承的RelativeLayout
1,所有函数都返回super,点击空白没控件位置
2,所有函数都返回super,点击没设点击事件的控件
3,所有函数都返回super,点击设有点击事件的控件
4,ViewGroup的dispatchTouchEvent设置为true,其余函数都返回super,点击所有位置都一样
5,ViewGroup的dispatchTouchEvent设置为false,其余函数都返回super,点击所有位置都一样,View控件点击事件失效
5,ViewGroup的onInterceptTouchEvent设置为true,其余函数都返回super,点击所有位置效果同第1条,但是,View控件的点击事件失效。
6,ViewGroup的onInterceptTouchEvent设置为false,其余函数都返回super,点击空白、没设点击事件控件、设了点击事件控件,效果图以此如下:
7,ViewGroup的onTouchEvent设置为true,其余函数都返回super,点击空白处和点击没设点击事件控件一样,点击设置了点击事件的控件效果图依次:
8,ViewGroup的onTouchEvent设置为false,其余函数都返回super,点击空白处和点击没设点击事件控件一样效果同1,设了点击事件控件效果同3.
相关文章推荐
- 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解
- 自定义ViewGroup (3) 与子View之间 Touch Event的拦截与处理
- TouchEvent分发过程一:TouchEvent在ViewGroup中的分发过程
- TouchEvent分发过程二:ListView中TouchEvent的处理
- android TouchEvent处理流程分析
- Android Touch事件传递的一些总结
- android onTouch()与onTouchEvent()的区别
- Android onTouch事件传递机制
- Android事件分发与传递
- 如何禁止Gridview上下滑动?
- 谈谈对dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent的理解
- 识别输入装置ID与InputDevice装置(Improved event management)
- 控件传递事件
- 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解
- android事件分发机制(图易懂)
- Android onTouchEvent和setOnTouchListener中onTouch的区别
- android_85_自定义View
- Android中的 事件流----浅析安卓中的动与静(一) 用户事件流
- AndroidStudio项目提交(更新)到github最详细步骤
- Xml解析