Android Touch Event 超出范围

134 篇文章 0 订阅
22 篇文章 0 订阅

做了个简单测试:

一个一定范围的View,设置其onTouchEvent返回true,表明可以处理Touch事件,

点中该View,然后滑动,滑动出View一段距离再松开,原来以为在刚滑动出View的时候,View会收到ACTION_CANCEL事件(因为滑出了它的响应范围了),

但是其实后面滑出来View以后,ACTION_MOVE/UP还是会被该View处理。

刚开始有点想不通,后来才觉得这样的合理性:

Android其实是把一次 Touch从开始<down>到结束<up> 视作是一个整体的,是一个事务(Transaction), 一旦某个View的onTouchEvent返回了true,就代表着这次事务

就全权由此View来处理,不管后面此事务中的ACTION_MOVE是否已经超过了View的响应范围,这次事务的所有ACTION_XX都由这个View来处理,并且当然这次的事务中

传递的TouchEvent也一直是以该View的左上角作为原点,不会因为滑出去而有什么变化。

这个细节以前还真没注意过,要不是有个需求,是不会测试的,貌似google的guide也没说.



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值