Android双击事件拦截方法

作者:keyboy_rl 时间:2022-07-21 19:33:30 

下文我们介绍两种双击事件拦截的方式

1.通过Android的事件分发机制进行拦截(dispatchTouchEvent)

话不多说,直接上代码:


/** 判断是否是快速点击 */
private static long lastClickTime;
public static boolean isFastDoubleClick() {
 long time = System.currentTimeMillis();
 long timeD = time - lastClickTime;
 if (0 < timeD && timeD < 1000) {
  return true;
 }
 lastClickTime = time;
 return false;
}
/** 判断触摸时间派发间隔 */
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
 if (ev.getAction() == MotionEvent.ACTION_DOWN) {
  if (isFastDoubleClick()) {
   return true;
  }
 }
 return super.dispatchTouchEvent(ev);
}

用法就是直接在你需要拦截双击事件的类中加入这两个函数,系统会自动调用dispatchTouchEvent进行事件拦截,屏蔽掉双击事件,可以通过调整上述的时间达到你想要的效果

缺点就是加入后的整个activity都会屏蔽掉双击事件,可能会影响其他组件的正常使用

2.通过一个工具类来使用双击函数


//判断是否是快速点击
private static long lastClickTime = 0L; //上一次点击的时间
public static boolean isFastDoubleClick() {
 long time = System.currentTimeMillis();
 long timeD = time - lastClickTime;
 if(timeD<1000){
  //写自己的双击逻辑
  return true;
 }
 lastClickTime = time;
 return false;
}

使用方法就是将这个函数放到一个工具类中,在你需要进行双击事件拦截时,直接调用这个函数进行判断即可,有没有很方便

来源:http://blog.csdn.net/qq_28260521/article/details/78955456?

标签:Android,双击事件,拦截
0
投稿

猜你喜欢

  • 一篇文章带你了解Java Stream流

    2022-11-05 10:26:18
  • Spark JDBC操作MySQL方式详细讲解

    2021-05-24 12:41:51
  • java eclipse 出现 xxx cannot be resolved to a type 错误解决方法

    2021-08-19 06:22:07
  • Android提高之MediaPlayer播放网络音频的实现方法

    2022-01-17 02:39:56
  • Unity制作小地图和方向导航

    2023-02-07 16:51:02
  • Android植物大战僵尸小游戏

    2023-08-05 21:27:04
  • C#中ManualResetEvent实现线程的暂停与恢复

    2021-06-20 14:59:24
  • C#事件实例详解

    2022-04-23 22:24:47
  • Java基础之重载(Overload)与重写(Override)详解

    2023-07-31 08:10:25
  • C#编程总结(一)序列化总结

    2022-04-07 04:25:19
  • Mybatis plus中的like查询问题

    2022-03-18 09:14:30
  • Spring Boot配置接口WebMvcConfigurer的实现

    2023-11-27 23:28:50
  • java 读写文件[多种方法]

    2022-10-04 09:09:00
  • Android10填坑适配指南(实际经验代码)

    2022-10-05 19:51:19
  • android 版本检测 Android程序的版本检测与更新实现介绍

    2022-12-02 11:27:41
  • C#中调用SAPI实现语音合成的2种方法

    2023-07-07 09:36:00
  • 深入多线程之:内存栅栏与volatile关键字的使用分析

    2021-05-29 10:02:56
  • Java泛型中<?>和<T>的区别浅析

    2023-11-25 05:20:09
  • C#中多态、重载、重写区别分析

    2022-06-27 22:49:55
  • C# Socket编程实现简单的局域网聊天器的示例代码

    2022-10-01 19:45:45
  • asp之家 软件编程 m.aspxhome.com