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

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