当前位置: 代码迷 >> Android >> onTouch onClick拦截机制有关问题 求解答
  详细解决方案

onTouch onClick拦截机制有关问题 求解答

热度:90   发布时间:2016-05-01 21:31:08.0
onTouch onClick拦截机制问题 求解答
想对一个悬浮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; 表示该事件被该控件"吃"掉
  相关解决方案