关闭

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

标签: android
110人阅读 评论(0) 收藏 举报
分类:

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

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

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

这里写图片描述

这里写图片描述

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:52613次
    • 积分:2307
    • 等级:
    • 排名:第16293名
    • 原创:179篇
    • 转载:27篇
    • 译文:0篇
    • 评论:3条
    最新评论