2013-10-04 1 views
14

का उपयोग किए बिना पॉपअपविंडो को खारिज करें मेरे पास पॉपअपविंडो है और जब मैं उपयोगकर्ता को बाहर छूता है तो मैं इसे खारिज करना चाहता था, इसलिए मैंने देखा और पाया कि मुझे popup.setBackgroundDrawable(new BitmapDrawable()); का उपयोग करना था। समस्या यह है कि निर्माता new BitmpaDrawable() बहिष्कृत है। मैं इसे इस्तेमाल किए बिना समाधान ढूंढना चाहता हूं।पॉपअप के बाहर पॉपअपविंडो को डिस्क्रेटेड कन्स्ट्रक्टर

कोई भी इसे हल करने के बारे में जानता है?

धन्यवाद!

   final PopupWindow popup = new PopupWindow(sortByView, 
              ViewGroup.LayoutParams.WRAP_CONTENT, 
              ViewGroup.LayoutParams.WRAP_CONTENT,    
              true); 
       popup.setBackgroundDrawable(new BitmapDrawable()); 
       popup.setOutsideTouchable(true); 
       popup.showAsDropDown(v); 
+4

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

उत्तर

7

हम्म सेटबैकग्राउंड ड्रॉबल पॉपअप विंडो को विघटित नहीं करता है। मुझे लगता है कि पॉप अप विंडो के डिफ़ॉल्ट व्यवहार को बाहर छूने पर खारिज करने के लिए है, लेकिन आपको लगता है कि

popup.setOnDismissListener(new PopupWindow.OnDismissListener() { 

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

मुझे नहीं लगता कि पॉपअप विंडो का डिफ़ॉल्ट व्यवहार खारिज करना है, अगर मैं लाइन 'popup.setBackgroundDrawable (नया बिटमैप ड्रायबल()) का उपयोग नहीं करता हूं, तो पॉपअप स्पर्श पर खारिज नहीं होता है। यह केवल उस पंक्ति के साथ करता है, लेकिन 'नया बिटमैप ड्रायबल() 'बहिष्कृत किया गया है इसलिए मुझे एक चेतावनी मिलती है जिसे मैं टालना चाहता हूं। – mario595

+0

आप पॉपअप कैसे दिखाते हैं? यदि आप इसे popup.showAsDropDown() के साथ दिखाते हैं, तो आप पॉपअप विंडो को खारिज करते हुए 'popup.dismiss()' कहते हैं। अपना कोड जांचें कि क्या आपके पास लाइन 'popup.setOutsideTouchable (true)' है। और इसके साथ प्रयास करें: popup.setModal (true) – Proxain

+0

हां, मैं 'popup.showAsDropDown (v);' का उपयोग कर रहा हूं। PopupWindow में कोई विधि नहीं है 'popup.setModal (true) ' – mario595

7

आप की कोशिश कर सकते तरह onDismiss श्रोता जोड़ सकते हैं।

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

क्या मैं यह काम करने के लिए करना था:

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

मैंने एक ही चीज़ की कोशिश की है और यह एमुलेटर में काम कर रहा है लेकिन एक ही कोड डिवाइस पर काम नहीं कर रहा है। मुद्दा क्या हो सकता है? – Jaymin

संबंधित मुद्दे