Android事件传递的三个方法

本文介绍了Android中触摸事件的传递机制,包括dispatchTouchEvent、onInterceptTouchEvent及onTouchEvent三个关键方法的作用与交互流程。通常Activity仅涉及dispatchTouchEvent及onTouchEvent,而ViewGroup还包括onInterceptTouchEvent。文章详细解释了这些方法如何协作完成触摸事件的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

触摸事件传递有3个方法:

  • dispatchTouchEvent:用来分发事件,如果你拦截则交给onTouchEvent处理,否则,传给子view。
  • onInterceptTouchEvent:事件阻拦。返回true表示拦截,false不拦截。
  • onTouchEvent:处理触摸事件
  • 其中Activity和View只有dispatchTouchEvent和onTouchEvent方法,而ViewGroup则三种方法都有。
  • 一般情况下,Activity中的dispatchTouchEvent不去重写方法,默认返回父类的dispatchTouchEvent。然后传递给ViewGroup。
  • ViewGroup收到后在dispatchTouchEvent中,将事件交给onInterceptTouchEvent处理,返回true则自己处理,返回false则向下传递给View。
  • View收到后则交给onTouchEvent处理,如果onTouchEvent返回true,则表示已处理。如果返回false,则表示未处理继续向ViewGroup传递。如果ViewGroup的onTouchEvent返回false,则继续向父ViewGroup传递处理。一般来说Activity不处理onTouchEvent事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值