2013-03-09 16 views
1

当显示PopupWindow时,单击PopupWindow区域之外的按钮仅会取消PopupWindow,但该按钮的点击侦听器不响应。我的问题是,为什么按钮的点击监听器不响应?当PopupWindow显示在窗口上时,为什么按钮的onClickListener不会触发?

private OnClickListener mSiftClickListener = new 
    View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if (mSiftPopwin != null && mSiftPopwin.isShowing()) { 
        ToastShow.makeText(mContext, "yes"); //never show 
       } else { 
        showSfitPopwin(); 
       } 
      } 
    }; 

onClickListener有两个功能,showSiftPopwinToastShow,当Popwin显示时,单击它再次,Popwin解雇但这的onClick监听has't被调用。

回答

3

这是预期的行为。

弹出窗口将消耗屏幕上的任何触摸事件,直到它被解散。您提到的触摸事件不会触及您的按钮,也不会执行点击操作。

如果您希望它在窗口关闭时运行,您应该将按钮代码移动到OnDismissListener

+0

我明白了,谢谢。 – Mejonzhan 2013-03-10 14:15:22

+0

感谢您的回答,但如果有多个按钮如何知道哪个按钮被点击了。 – 2015-01-06 06:36:46

+1

@NavinRajPandey您可以将作为参数传递的视图的ID与想要侦听的ID进行比较。 – 2015-01-06 20:18:57

相关问题