Android中view控件双击事件的捕捉
来源:互联网 发布:cdr可变数据 编辑:程序博客网 时间:2024/05/23 19:16
Android控件中获取双击事件的获取有时候挺折磨人的。我们可以通过控件的TouchEvent和view的postdelayed来判断控件是否被双击。
TouchEvent是来捕捉控件view被触摸的状态,手指按下,手指离开等,postdelayed方法则是用来在一定时间后来查看控件被点击了几次,以判断是单击或双击事件。整个过程是:1.第一次点击,点击次数为1,然后开始等待一定时间(视为双击的时间如0.5s)2.等待期间每次点击,计数加一 3.等待时间到,查看点击次数,得出结果。
代码示例:
以webview为例
webview.setOnTouchListener(new OnTouchListener() {long lastClickUpTime = 0;long curClickUpTime = 0;long CLICK_SPACING_TIME = 500;<span style="white-space:pre"></span>int clickcount = 0;Runnable mRunnable = new Runnable() {@Overridepublic void run() {<span style="white-space:pre"></span>if(clickcount <= 1)//单击<span style="white-space:pre"></span>System.out.println("webview one click " + clickcount);else//双击System.out.println("webview click " + clickcount);clickcount = 0;}};@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:break;case MotionEvent.ACTION_UP:lastClickUpTime = curClickUpTime;curClickUpTime = System.currentTimeMillis();if ((curClickUpTime - lastClickUpTime < CLICK_SPACING_TIME)) {//是双击需取消第二次点击的那个线程//System.out.println("webview double click " + (curClickUpTime-lastClickUpTime));v.removeCallbacks(mRunnable);}clickcount++;v.postDelayed(mRunnable, CLICK_SPACING_TIME);//延迟CLICK_SPACING_TIME后运行runbreak;}return false;}});逻辑上我们可以先看onTouch方法,当第一个action_up事件产生的时候视为一次点击,接着将点击次数累加同时执行postdelayed,当延迟时间过去后,执行run方法定义的内容,run方法查看当下点击数量,若为1,则是单击,其它则是多次点击。
0 0
- Android中view控件双击事件的捕捉
- 捕捉DataGrid的双击事件
- 捕捉DataGrid的双击事件
- 捕捉DataGrid的双击事件
- 捕捉DataGrid的双击事件
- Android事件分发的View的焦点捕捉事件
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- BootStrap 框架初识
- iOS 10 Auto Layout界面自动布局系列1-自动布局的基本原理
- UIKeyboard键盘相关知识点-IOS开发
- IOS获取摄像和本地中的资源
- 使用Busybox-1.2.0制作根文件系统 .
- Android中view控件双击事件的捕捉
- SUSE11添加自启动脚本
- hdu2952Counting Sheep(DFS)
- 一句代码就能轻松解决键盘遮挡住输入框的问题
- 视频特效制作:如何给视频添加边框、水印、动画以及3D效果
- leetcode:Surrounded Regions
- Linux vlan 功能模块分析
- IOS注意之自动布局细心很重要
- Hello World!