Android中onClick事件和onTouchEvent事件冲突问题的解决方案
2015-12-31 09:14
447 查看
在做自定义开关按钮的时候,出现了这样一个问题,当重写onTouchEvent方法的时候,onClick方法就执行不到了,这是由于onClick方法和onTouchEvent方法冲突造成的,我的解决方法是,在onTouchEvent的down事件的时候,记录下当前手指在屏幕上的位置firstX,up事件的时候记录下当前手指在屏幕上的位置lastX,如果两次位置没有变化,则认为当前是点击事件
@Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 手指按下 // 获得手指在屏幕上的位置,这里只需要X坐标 firstX = lastX = event.getX();// 记录下当前的最开始在屏幕的值 break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: // 手指抬起 lastX = event.getX(); if (lastX - firstX == 0) { // 这是点击事件 } else { //发生了拖拽 } } break; }
相关文章推荐
- Android更改桌面应用程序launcher的两种方式
- Android自定义开关按钮
- Android TabLayout重设Tab点击事件
- Android_Training
- system.new.dat一键解包工具,支持Android5.1
- Android 5.0(Lollipop)system.new.dat解包工具及方法
- Android HandleThread源码分析
- android中的Handler机制原理解析
- SDK23版本之后的android-support-v7-gridlayout在AndroidStudio中的使用
- android之旅17 四大组件之服务基本概念
- Android特效专辑(一)——水波纹过渡特效(首页)
- Android特效专辑(一)——水波纹过渡特效(首页)
- 源码探索系列16---初篇结尾---那个被RecyclerView替代的Listview
- Android Studio点9图问题
- android 自定义View
- Activity 生命周期图
- android 相关知识
- android之旅16 自定义广播与无序有序广播
- Fragment android碎片化管理
- 在Android项目中支持emoji