Android进阶- 触摸事件的分发机制

来源:互联网 发布:windows优化软件 编辑:程序博客网 时间:2024/05/04 08:35

Android进阶- 触摸事件的分发机制

  • 先来看一下,触摸事件传递的3个方法

    • onInteceptTouchEvent(): 返回true表示拦截这次触摸事件, false表示不拦截
    • dispatchTouchEvent(): 用来分发事件, 如果事件被拦截则交给
    • onTouchEvent(): 处理触摸事件,返回true表示事件被消耗, false表示没有对触摸事件进行处理
  • 那么,Android的触摸事件是怎样分发的呢

这里写图片描述

这里写图片描述

可以看出,事件会优先交给父控件来处理, 但是这样的话,做儿子的是不是也太没有权利了,因此,为了给儿子一点机会,
在dispathchTouchEvent()中可以这样写:
getParent().requestDisallowInterceptTouchEvent(true); //请求父控件给它处理触摸事件的机会

在anroid中ViewGroup一般是将事件优先交给其儿子来处理的

0 0