Android"解决"onTouch和onClick的冲突问题
2014-01-26 14:12
1821 查看
开门见山,做了一个按钮,如图
好不容易把效果实现了,但是后面发现了一个问题,因为这个按钮是可以滑动或者点击的,滑动倒是无所谓,down——move——up 就可以了,但是点击的时候不但会执行点击操作,也会执行down和up的动作,就冲突了,开始还自己乱搞一气,想试图谋杀onTouch,但是onClick不答应,死死拦住我说,说要想杀onTouch,必须从它尸体上踏过去。
然后搜了搜,觉得有个不是办法的办法还是不错的,就是判断down的时候以及up的时候两者的x的变化,如果没有变化,就暂定为一次onclick点击事件
public boolean onTouchEvent(MotionEvent event) { final int action = event.getAction(); final int moveX = (int)event.getX(); final int scape = moveX - firstX; switch (action) { case MotionEvent.ACTION_DOWN: firstX = (int) event.getX();//按下的时候开始的x的位置 break; case MotionEvent.ACTION_MOVE: if (isMove) { move(scape); } break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: secondX = (int)event.getX();//up的时候x的位置 int distance = secondX - firstX; if (distance == 0) { //当没有变化的时候什么都不做 }else { //执行move滑动后的操作 } break; } return true; }
效果还不错
相关文章推荐
- android onclick与ontouch和scroll监听冲突的解决方法 类似QQHD拖动窗口效果
- android开发步步为营之65:解决ScrollView和ListView触摸事件onInterceptTouchEvent相互冲突问题
- 解决Android的onClick与onTouch冲突
- Android:完美解决listview的setonitemclicklistener 和 setontouchlistener冲突问题
- android开发步步为营之65:解决ScrollView和ListView触摸事件onInterceptTouchEvent相互冲突问题
- android Touch事件详解(解决冲突问题)
- 解决android中HorizontalScrollView的滚动事件与组件的Touch冲突问题
- 解决android中HorizontalScrollView的滚动事件与组件的Touch冲突问题 --- 修正版
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- 【Android】 onClick与onTouch并存触发的问题
- Android Touch事件处理机制,解决滑动冲突问题
- android如何处理onTouch与onClick事件冲突
- 【Android开发】解决不同的OnClickListener冲突的问题
- Android中onTouchEvent的返回return super.onTouchEvent(ev);数组越界问题解决方法.。。
- 【Android】 onClick与onTouch并存触发的问题
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- Android 中 onTouch 和OnClick 冲突的处理(onTouchEvent返回true时与onclick冲突)
- 解决 setOnItemClickListener,setOnScrollListener与setOnTouchListener事件冲突问题
- Android 解决ListView 和 ScrollView 共存冲突的问题