首页 > 代码库 > 触摸事件的总结(
触摸事件的总结(
/**总结:
1.
1.1
dispatchTouchEvent事件分发这个每个都有(无论是View 还是viewgrope,以及Activity)
这个是用来处理是否分发事件(这个总是会被执行的前提是父控件没有拦截或者进行分发了)
如果这里就取消事件分发则无法响应本次触摸(以后的 onInterceptTouchEvent或者 onTouchEvent都不会执行包括父控件的)
1.2
onTouchEvent事件分发这个每个都有(无论是View 还是viewgrope,以及Activity)
用来处理自己的触摸事件,如果自己返回true则不再给下面的子view分发触摸事件
1.3
onInterceptTouchEvent这个是是否拦截事件(只有ViewGrope才有)
拦截触摸事件的,如果dispatchTouchEvent是同意的则可以通过这个来拦截不再给子view分发
2.
如果dispatchTouchEvent为false也就是可以往下给子view分发事件,
但是onInterceptTouchEvent拦截true的时候讲不会再给子view了,
包括onTouchEvent处理了事件任意一个为也就是,
3.dispatchTouchEvent true连自己的响应都不会有,也没有自己的拦截
4.
super.dispatchTouchEvent(ev);并不会和false相等,
如果是flase,子view也不会得到事件分发的处理(如果自己不想拦截处理最好用super,毕竟你不想处理父类还有要处理的东西呢)
以上是个人总结如果有问题或者错误希望大家指导,以下是测试部分的响应日志:
//标准:Activity->LinearLayout->TextView (布局就是LinearLayout里面一个TextView)
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onInterceptTouchEvent:LinearLayout 拦截
dispatchTouchEvent:TextView 事件分发
onTouchEvent: TextView事件响应
onTouchEvent: LinearLayout事件响应
onTouchEvent: Activity事件响应
dispatchTouchEvent:Activity 事件分发
onTouchEvent: Activity事件响应
*/
/* 拦截后dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onInterceptTouchEvent:LinearLayout 拦截
onTouchEvent: LinearLayout事件响应
onTouchEvent: Activity事件响应
dispatchTouchEvent:Activity 事件分发
onTouchEvent: Activity事件响应*/
/** dispatchTouchEvent true后(不在进行事件分发)
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
*/
/**
* Touch true后
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onInterceptTouchEvent:LinearLayout 拦截
dispatchTouchEvent:TextView 事件分发
onTouchEvent: TextView事件响应
onTouchEvent: LinearLayout事件响应
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onTouchEvent: LinearLayout事件响应
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onTouchEvent: LinearLayout事件响应
*/
/*onInterceptTouchEvent 和Touch为true
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onInterceptTouchEvent:LinearLayout 拦截
onTouchEvent: LinearLayout事件响应
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onTouchEvent: LinearLayout事件响应
dispatchTouchEvent:Activity 事件分发
dispatchTouchEvent:LinearLayout 事件分发
onTouchEvent: LinearLayout事件响应*/
触摸事件的总结(
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。