想对一个悬浮view实现既可以滑动 又可以点击(类似button) 写了onTouchEvent 然后用setOnClickListener怎么都监听不到click事件 到网上搜的时候说是OnTouch和OnClick的调用时序和拦截机制的问题 说的都很复杂 求具体一点的解决方案?
------解决方案--------------------
我这边有2种方法,常用的还是信号量得方法。
追加信号量,判断OnTouch事件中已经处理了移动,那则在OnClick事件内的处理内容就不进行,反之,执行。
这样可以实现屏蔽效果,也是比较合理的。
晚上还有一个种说法,就是追加setOnLongClickListener 的监听事件,在其中返回true。
但是我不太常用这种方法。该方法也是能屏蔽OnClick事件的有效方法。
------解决方案--------------------
使用http://blog.csdn.net/rmm0001/article/details/6624525
------解决方案--------------------
舍弃 OnClickListener
在 onTouchEvent 中
设置默认模式为 NO_click
if(按下){
设置模式为 click
}
if(长按){
设置模式为 NO_click
}
if(抬起){
if(模式 == click)
按照 click 方式处理
}
if(滑动){
处理滑动
}
其他模式不需要处理
最后
return true; 表示该事件被该控件"吃"掉