2013-03-09 19 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

相關問題