码迷,mamicode.com
首页 > 移动开发 > 详细

android 触摸touch事件的派送和传递

时间:2014-11-14 18:02:53      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:android 触摸 touch事件 派送 传递

  1、touch事件从Activity开始向下逐层派发

     一直派发到焦点控件进行处理

  2、如果控件的事件处理方法返回true

     则,该控件消费且持续关注此事件

     否则,该事件向该控件的上一层容器传递

  3、控件的touch监听器的onTouch方法 先于

     控件本身的onTouchEvent执行


Touch事件派发和处理的方法

  dispatchTouchEvent

  onInterceptTouchEvent(只有ViewGroup有该拦截方法)

  onTouchListener.onTouch

  onTouchEvent


假设一个Activity只包含一个Linearlayout,这个LinearLayout又包含一个TextView。从Log中可以看出

当用户按下这个TextView时,所执行的函数顺序是:

Activity.dispatchTouchEvent

Linearlayout.dispatchTouchEvent

LinearLayout.onInterceptTouchEvent(LinearLayout是ViewGroup)

TextView.dispatchTouchEvent

TextView.onTouchListener.onTouch

TextView.onTouchEvent

LinearLayout.onTouchListener.onTouch

LinearLayout.onTouchEvent

最后是Activity.onTouchEvent

以上是每一层都不消费这个touch事件的情况,即所有方法都return false的情况。

如果任意一个方法消费了这个事件,即返回了true,这种情况下事件只到此方法为止,后面的方法都不执行。而后续事件将也只执行到此方法,即此方法消费并持续关注此事件,如:移动和抬起等后续事件。


 

android 触摸touch事件的派送和传递

标签:android 触摸 touch事件 派送 传递

原文地址:http://lyman.blog.51cto.com/3258049/1576555

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!