Android 事件分发

Touch 事件的分发和消费机制dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
dispatchTouchEvent 事件分发
true 事件会分发给当前View 并由dispatchTouchEvent 方法消费,同时停止向下传
false 事件分发为两种情况
1.如果View 获取的事件直接来自Activity,这会返回activity的onTouchEvent进行消费
2.如果View获取的事件来自外层父控件 这回将时间返回给父View的onTouchEvent进行消费
Super.dispatchTouchEvent(ev) 事件会分发给当前的View的onInterceptTouchEvent方法

onInterceptTouchEvent(ev) 事件拦截
true 对事件进行拦截 并将拦截的事件交给当前View的onTouchEvent 进行处理
false 将事件方行 传递到子View上,在传递到子View的dispatchTouchEvent
再进行事件的分发
Super.onInterceptTouchEvent(ev)事件默认拦截 并将拦截到的事件交给当前View的onTouchEvent进行处理 (和返回ture一样)

onTouchEvent 事件响应
true 事件拦截 自己处理
false 放弃处理 ,返回到上级,并由上层View的onTouchEvent 来接受
super.onTouchEvent(ev)默认处理事件的逻辑和返回false的一样

在有注册onTouchListener的情况下会先调用
onTouch
true 这事件不在向下层传递
false 像onTouchEvent传递
然后 onTouchEvent
然后onClick

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值