2013-10-04 27 views
14

Bir PopupWindow'um var ve kullanıcı dışarıya dokunduğunda işten atılmasını istedim, bu yüzden baktım ve popup.setBackgroundDrawable(new BitmapDrawable()); kullanmam gerektiğini öğrendim. Sorun, yapıcı new BitmpaDrawable()'un kullanımdan kaldırılmış olmasıdır. Kullanmadan bir çözüm bulmak isterim.Kullanımdan kaldırıldı PopupWindow'u kullanımdan kaldırmayın, kullanımdan kaldırılmış bir kurucu kullanmadan

Bunu nasıl çözeceğini bilen var mı?

Teşekkürler!

+4

popup.setBackgroundDrawable (yeni ColorDrawable (android.R.color.transparent)); – Petrus

cevap

7

Hmm setBackgroundDrawable, açılır pencereyi kapatmayın. Ben pop-up penceresinin varsayılan davranışı dışında dokunmadan üzerine görevden olduğunu düşünüyorum ama denemek verebilecek

popup.setOnDismissListener(new PopupWindow.OnDismissListener() { 

    @Override 
    public void onDismiss() { 
     popup.dismiss(); 
     // end may TODO anything else     
    } 
}); 
+0

Açılır pencerede açılan pencerenin varsayılan davranışı "popup.setBackgroundDrawable (yeni BitmapDrawable()); Sadece bu satırda var, ancak 'yeni BitmapDrawable()', kullanımdan kaldırıldığından, kaçınmak istediğim bir uyarı alıyorum. – mario595

+0

Pop-up'ı nasıl gösterirsiniz? Açılır pencereyi kapatan 'popup.dismiss()' diye çağırdığınızda popup.showAsDropDown() ile gösterirseniz. 'Popup.setOutsideTouchable (true)' satırınız olup olmadığını kontrol edin. Ve ile deneyin: popup.setModal (true) – Proxain

+0

Evet, 'popup.showAsDropDown (v);' kullanıyorum. PopupWindow bir yöntem değil 'popup.setModal (true)' – mario595

7

gibi onDismiss dinleyici ekleyebilir.

popup.setBackgroundDrawable(new BitmapDrawable(getResources(), 
      "")); 
19

Ben onu işe almak için yapmak zorunda Ne:

popup.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, android.R.color.transparent))); 
popup.setOutsideTouchable(true); 
+0

Aynı şeyi denedim ve emülatörde çalışıyor ama aynı kod cihaz üzerinde çalışmıyor. sorun ne olabilir? – Jaymin

İlgili konular