首页 > 移动平台 > 详细

Android 触摸事件传递机制

时间:2014-03-25 16:23:28      阅读:491      评论:0      收藏:0      [点我收藏+]

android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法:
1)public boolean dispatchTouchEvent(MotionEvent ev)  这个方法用来分发TouchEvent
2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent
3)public boolean onTouchEvent(MotionEvent ev) 这个方法用来处理TouchEvent

bubuko.com,布布扣
当 TouchEvent发生时,首先Activity将TouchEvent传递给最顶层的View,
1,View首先检查dispatchTouchEvent这个函数的返回结果:
    (1)如果返回true ,则交给这个view的onTouchEvent处理。
    (2)如果返回false ,则交给这个 view 的 interceptTouchEvent 方法来决定是否要拦截这个事件。
2,然后如果轮到 onInterceptTouchEvent执行的话:
    (1)如果返回 true ,也就是拦截掉了,则交给这个view的onTouchEvent处理。
    (2)如果返回 false ,那么就传递给子 view ,由子 view 的 dispatchTouchEvent 再来开始这个事件的分发。
3,如果事件传递到某一层的子view 的 onTouchEvent 上了:
    (1)如果返回 false ,那么这个事件会从这个 view 往上传递,而且都是 onTouchEvent 来接收。而如果传递到最上面的 onTouchEvent 也返回 false 的话,这个事件就会“消失“。
    (2)如果返回true,那么这个事件就会止于该view。

Android 触摸事件传递机制,布布扣,bubuko.com

Android 触摸事件传递机制

原文:http://blog.csdn.net/awangyunke/article/details/22047987

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!