2016-06-01 20 views
1

Ich habe 2 Schaltflächen, die Popup-Fenster zeigt. Ich habe für das Schließen dieser Popup-Fenster beim Klicken außerhalb codiert.Popup-Fenster zu schließen und öffnen Problem

Mein Problem ist;

Wenn das erste Popup-Fenster geöffnet ist, wird durch Klicken auf die zweite Schaltfläche zum Öffnen des zweiten Popup-Fensters nur das erste Popup-Fenster geschlossen. Um das zweite Popup zu öffnen, klicken Sie erneut auf den Button.

Gibt es eine Möglichkeit, Doppelklick auf die Schaltfläche zu vermeiden.

mein Code:

btn_a.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      lInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View popup_view = lInflater.inflate(R.layout.popup, null); 
      final PopupWindow popup = new PopupWindow(popup_view,200,110,true); 
      popup.setFocusable(true); 
      popup.setBackgroundDrawable(new ColorDrawable()); 
      popup.setOutsideTouchable(true); 
      popup.showAsDropDown(btn_period,0,0); 
     } 
    }); 


    btn_b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      lInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View popup_view2 = lInflater.inflate(R.layout.popup2, null); 
      final PopupWindow popup2 = new PopupWindow(popup_view2,200,110,true); 
      popup2.setFocusable(true); 
      popup2.setBackgroundDrawable(new ColorDrawable()); 
      popup2.showAsDropDown(btn_shops,0,0); 

     } 
    }); 
+0

Wenn sich Ihre Schaltflächen im Aktivitätslayout befinden, wird das Popup-Fenster nur durch Klicken außerhalb eines Popups abgebrochen, ohne dass ein Klick auf die Aktivität ausgelöst wird Layout-Schaltflächen – Sunshinator

Antwort

0

Sie haben diese Eigenschaften verwenden:

popupWindow.setTouchable(true); 
popupWindow.setFocusable(false); 
popupWindow.setOutsideTouchable(false);` 

und wenn Sie auf der zweiten Popup klicken dann schließen erste Pop-up mit dieser Funktion:

if(popup_view.isShowing(){ 
    popup_view.dismiss(); 
} 
Verwandte Themen