12

मैं एक समारोह है कि जब शुरू हो रहा है जोड़ने के बाद दिखाई नहीं दे रहा, सफलतापूर्वक निम्नलिखित कोड के साथ एक DialogFragment प्रदर्शित करता हैDialogFragment चेतावनी विंडो

DialogFragment

DialogFragment dialog; 
View dialogView; 
Context activityContext; 

... 

dialog = new DialogFragment(){ 
    @Override public Dialog onCreateDialog(Bundle savedInstanceState) { 
     dialogView = getActivity().getLayoutInflater().inflate(R.layout.customView, null); 
     ... 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setView(dialogView); 
     return builder.create(); 
    } 
}; 

dialog.show(activityContext.getSupportFragmentManager() , "MyDialog"); 

समस्या यह है, के बाद मैं एक सिस्टम चेतावनी जोड़ने निम्न कोड वाला विंडो डायलॉगफ्रैगमेंट अब नहीं दिखाता है, लेकिन अगर मैं किसी अन्य ऐप पर जाता हूं, तो जब मेरा ऐप कम हो जाता है तो मैं डायलॉगफ्रैगमेंट देख सकता हूं, जबकि यह आकार

सिस्टम चेतावनी विंडो

WindowManager mWindowManager; 
WindowManager.LayoutParams params; 

... 

mWindowManager = (WindowManager)activityContext.getSystemService(Context.WINDOW_SERVICE); 
params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.TYPE_PHONE, 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
    PixelFormat.TRANSLUCENT 
} 
params.gravity = Gravity.CENTER_VERTICAL | Gravity.RIGHT; 
addView(((LayoutInflater)activityContext.getSystemService("layout_inflater")).inflate(R.layout.floatingBotton, null)); 

तो ... क्यों मैं शीर्ष पर मेरे संवाद नहीं देख सकते (जहाँ तक मैं समझता हूँ, संवाद प्रदर्शित कर रहा है) यह क्यों केवल तब होता है सिस्टम अलर्ट विंडो है जब

मैं सिस्टम चेतावनी विंडो के लिए अन्य झंडे के साथ की कोशिश की है दिखाया गया है, लेकिन मैं लोगों को लगता है कि मैं कोशिश की है के साथ एक ही समस्या है

+0

आप dialogfragment की खिड़की में जोड़ने से कर रहे हैं? – Elltz

+0

क्या 'dialog.show' विधि आपके स्वयं का है? एपीआई लेवल 13 में संवाद की विधि दिखा दी गई है, आपको अपना संवाद दिखाने के लिए खंड प्रबंधक का उपयोग करने की आवश्यकता है। बेहतर समझने के लिए डायलॉग फ्रैगमेंट क्लास दिखाएं .. –

+0

AFAIK संवाद जेड-इंडेक्स को दिखाए जाने के क्रम में निर्धारित किया गया है, उदाहरण के लिए आप खिड़की प्रबंधक लेआउट को बढ़ाने के बाद अपना संवाद खंड दिखाते हैं तो आपका 'डायलॉग फ्रैगमेंट' अन्य लेआउट के शीर्ष पर दिखाया जाएगा । स्क्रीन पर आखिरी बार प्रदर्शित की गई प्राथमिकता। –

उत्तर

0
FragmentManager fmg1=this.getChildFragmentManager(); 
//or 
FragmentManager fmg1=this.getFragmentManager(); 

dialog.show(fmg1 , "MyDialog"); 

कृपया इस कोशिश यह

उपयोगी हो सकता है
संबंधित मुद्दे