android 怎么监听双击,Android 同时实现View的单击和双击监听事件

接到一个新需求,要求实现控件 RecyclerView 的 item 的单击和双击事件的监听,

开始时候通过实现 OnTouchListener 监听实现了需求,点击是没有问题的,

可是测试时候发现 RecyclerView 滑动的时候就也会触发这个点击事件,

应该是我没处理事件的结果.后来索性查资料换个了方法,直接实现OnClickListener

监听改变一下.就不会有这个问题了. 用法和正常的点击监听相同,实现回调就好.

以下代码:

public class DoubleClickListener implements View.OnClickListener {

//记录连续点击次数

private int clickCount = 0;

private Handler handler;

private DoubleClickCallBack myClickCallBack;

public interface DoubleClickCallBack {

//点击一次的回调

void oneClick(View view);

//连续点击两次的回调

void doubleClick(View view);

}

public DoubleClickListener(DoubleClickListener.DoubleClickCallBack myClickCallBack) {

this.myClickCallBack = myClickCallBack;

handler = new Handler();

}

@Override

public void onClick(View v) {

clickCount++;

//双击间二百毫秒延时

int timeout = 200;

handler.postDelayed(() -> {

if (clickCount == 1) {

myClickCallBack.oneClick(v);

} else if (clickCount == 2) {

myClickCallBack.doubleClick(v);

}

//清空handler延时,并防内存泄漏

handler.removeCallbacksAndMessages(null);

//计数清零

clickCount = 0;

}, timeout);//延时timeout后执行run方法中的代码

}

}

希望能对大家有所帮助,欢迎大家一起讨论交流。

2ddccf24e40d

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值