के बाद बर्खास्त कर दिया जाता है मैं एक नेस्टेड टुकड़ा है कि मेरे PhotoNoteDialogFragment से पता चलता है (!):नेस्टेड DialogFragment रोटेशन
private void newPhotoNote() {
mPhotoDialog = PhotoNoteDialogFragment.newInstance(this);
mPhotoDialog.show(getFragmentManager(), PhotoNoteDialogFragment.TAG);
}
संवाद पॉप अप होता है, लेकिन जैसे ही मैं डिवाइस बारी बारी के रूप में खारिज हो जाता है। मैं पहले से ही कुछ शोध किया और सफलता के बिना इन बातों की कोशिश की:
सेट PhotoNoteDialogFragment # setRetainInstance (सही)। काम नहीं करता है, क्योंकि नेस्टेड टुकड़े को बनाए रखा नहीं जा सकता है। - मेरी नेस्टेड टुकड़ा में विधि
@Override public void onDestroyView() { if (getDialog() != null) getDialog().setDismissMessage(null); super.onDestroyView(); }
- कोशिश शो() कॉल करने के लिए:
PhotoNoteDialogFragment में इस कोड स्निपेट एक बग डालता है एक अवांछित सिस्टम से कॉल खारिज को रोकने के लिए उपयोग #onActivityCreated, अगर PhotoNoteDialogFragment के कहने पहली नहीं अशक्त:
@Override public void onActivityCreated(final Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (mPhotoNoteDialogFragment != null) { mPhotoNoteDialogFragment.show(getFragmentManager(), PhotoNoteDialogFragment.TAG); } }
इन प्रयासों में से कोई भी स्क्रीन रोटेशन के बाद डायलॉगफ्रैगमेंट फिर से नहीं आ सकता है। क्या कोई और विचार है, मैं आगे क्या कोशिश कर सकता हूं ..? मैं विचारों से बाहर हूं।
THX
क्या आपने पोर्ट्रेट और लैंडस्केप मोड के लिए अलग-अलग लेआउट का उपयोग किया था ... – Amsheer
आप रूट खंड कैसे जोड़ रहे हैं? क्या आप सुनिश्चित हैं कि यह सिस्टम द्वारा बनाए रखा गया है, या आप इसे मैन्युअल रूप से पुनर्निर्माण कर रहे हैं? –
@ एम्सहेयर: हाँ, मेरे पास नेस्टेड टुकड़े के साथ-साथ संवाद के लिए अलग-अलग लेआउट हैं। – muetzenflo