z_Ontouch_Onclick

  1. 对一个View同时调用OnTouch和OnClick事件时,会导致事件冲突 (EP:OT执行A动作,OC执行B动作,实际调用时呢能会同时执行AB两个动作)
  2. OnClick事件本身就是在OnTouch中发生的
  3. 解决方法:在onTouch事件中,如果返回true,就不会执行onClick,返回false,就同时执行onClick方法,要想把OnTouch和onClick事件完全的区分

流程:

    1. OnTouch中的MotionEvent.ACTION_DOWN 时,记录下点(X1,Y1)
    2. 在 MotionEvent.ACTION_UP 时,记录下点(X2,Y2)
    3. 比对俩点之间的距离,如果小于一个较小数值(比如5)
    4. 就认为是Click事件,onTouch中返回false,
    5. 若距离较大,可以当作onTouch事件去处理,返回true:
    6. 注:(不会报错,但是不完美。 在点位不确定时,使用距离[Time]记录点,可能会导致点位重合,而重合会继续导致冲突,但因为比较数值的操作,执行顺序会使用一个随机数)

PS:一些理论上的东西,而且好像在哪里看到过,侵权必删QAQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值