`
venus585625
  • 浏览: 249032 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对ViewGroup touch事件响应的理解

阅读更多
ViewGroup在接收到touch事件时,通过dispatchTouchEvent(MotionEvent event)把事件分发到子view里. touch事件的起始动作是ACTION_DOWN, viewgroup会调用onInterceptTouchEvent(MotionEvent ev)方法,若返回false才会正式分发事件到子view中,子view也调用dispatchTouchEvent方法,若返回true证明它消费了这个事件, viewgroup会把mMotionTarget设为该子view。

   在后续事件分发中(通常为ACTION_MOVE), 若mMotionTarget为null, 则viewgroup会消费这个事件, 否则viewgroup会调用onInterceptTouchEvent方法,若返回true时表示viewgroup要消费这个事件, 它会把mMotionTarget设为null然后返回true. 若返回false表示继续由子view来消费该事件。

    总的来说,就是若 onInterceptTouchEvent方法返回true或者 ACTION_DOWN时没有子view消费该事件,则由viewgroup来消费该事件,否则将事件分发到子view中处理。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/czh0766/archive/2010/08/18/5819265.aspx
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics