我记得我当初用windowsManager 做弹出view时也碰到过这个问题,不过我的需求和你的有些不同
但是思想差不多 建议你自定义一个layout 就是你的popupwindow 需要弹出的那个 继承view 或者是什么layout都行 ;
然后呢重写里面的onDetachedFromWindow() 方法
你看看这个方法的具体说明 这个方法的意思是你的view在屏幕窗口上消失时要做的操作 
 明白了吧 所以你可以重写它 把你要响应点击事件的代码加进去 我的思路是这样 你再想想

解决方案 »

  1.   

    经过测试发现PopupWindow确实bug多多首先如果想.setTouchInterceptor(new OnTouchListener() )则这个popupwindow必须要
                   // 使其聚集
    popup.setFocusable(true);
    // 设置允许在外点击消失
    popup.setOutsideTouchable(true);
    // 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景
    popup.setBackgroundDrawable(new BitmapDrawable());
    然后这个touch的拦截才能生效,而且这个touch的拦截事件只能拦截掉
    down  move   up事件,却无法拦截掉action_outside事件如果非得拦截popupwindow点击外部的事件的话,建议自定义view去做