Touch事件的传递机制

TouchEvent

TouchEvent 分三种事件:down、move、up。
其中move事件在一个操作中(这里说的一个操作就是用户与屏幕的交互,即由down到up的动作序列)可能会发生多次。
但是,我们认为一个动作序列会包含以上三种事件,因此,在事件处理中就是要处理好这个过程,而最重要的就是down事件,这是一个动作序列的起始,没有down谈不上后面的事件了。
所以,我们把消耗down事件的类当做是这个动作序列的最终载体。
如果Down事件不归你处理,那这个动作序列的move,up也不归你处理。
他们的触发顺序会是这样:
ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE…->ACTION_MOVE->ACTION_UP

Touch事件传递的相关方法

android系统中的几乎所有View的子类都具有下面三个和TouchEvent处理密切相关的方法:
//这个方法用来分发TouchEvent
public boolean dispatchTouchEvent(MotionEvent ev)

//这个方法用来拦截TouchEvent
//只有ViewGroup包含此方法,普通view不包含方法
public boolean onInterceptTouchEvent(MotionEvent ev)

//这个方法用来处理TouchEvent
public boolean onTouchEvent(MotionEvent ev)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值