Android view的单击,双击,长按事件监听

本文探讨了一种通过定时判断来实现Android view的单击、双击和长按事件监听的方法。常规的GestureDetector在view上设置OnTouchListener可能无法满足需求,而直接在Activity的onTouchEvent中处理则可能导致长按事件不符合预期。作者提出定义两个long变量记录点击时间,当两次点击间隔小于0.5秒视为双击,超过这个时间并启动定时器,如果手指在0.5秒后未抬起则判定为长按,其余情况视为单击。文章鼓励读者根据自己的业务逻辑实现此类事件监听,并提供了有心课堂交流群号供交流。
摘要由CSDN通过智能技术生成

关于view的双击事件,网上有很多demo使用GestureDetector ,在给view setOnTouchListener的时候插入。我试了下,onDoubleTap onSingleTap等几个方法都没有被调用到。而在Activity的onTouchEvent插入GestureDetector ,则完美调用各个手势事件。可是我们要设置单击,双击,长按事件的对象是view啊,不是Activity。
有些方案是在记录ACTION_DOWN到ACTION_UP的时间,单击和双击都能很好的记录,然后长按呢,你会发现只有在你手指抬起,也就是ACTION_UP的时候才开始算是长按!!!!! 这跟我要的效果不一样啊!!!

此次我们讨论的是用另一种方法来实现这3种事件监听——定时判断

package com.draftbox.touch_demo;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.draftbox.R;

public class TouchDemoActivity extends AppCompatActivity<
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值