想对一个悬浮view实现既可以滑动    又可以点击(类似button)     写了onTouchEvent    然后用setOnClickListener怎么都监听不到click事件     到网上搜的时候说是OnTouch和OnClick的调用时序和拦截机制的问题       说的都很复杂     求具体一点的解决方案?

解决方案 »

  1.   

    在OnTouch事件中用return的返回值来控制是否还要执行OnClick事件。
    http://wenku.baidu.com/view/8cb85d8f6529647d272852bc.html
      

  2.   

    我这边有2种方法,常用的还是信号量得方法。
    追加信号量,判断OnTouch事件中已经处理了移动,那则在OnClick事件内的处理内容就不进行,反之,执行。
    这样可以实现屏蔽效果,也是比较合理的。晚上还有一个种说法,就是追加setOnLongClickListener 的监听事件,在其中返回true。
    但是我不太常用这种方法。该方法也是能屏蔽OnClick事件的有效方法。
      

  3.   

    使用http://blog.csdn.net/rmm0001/article/details/6624525
      

  4.   

    舍弃 OnClickListener在 onTouchEvent 中 设置默认模式为 NO_clickif(按下){
       设置模式为 click
    }if(长按){
       设置模式为 NO_click
    }if(抬起){
       if(模式 == click)
         按照 click 方式处理
    }
    if(滑动){
       处理滑动
    }
    其他模式不需要处理
    最后return true; 表示该事件被该控件"吃"掉