Tôi có một lồng nhau Fragment cho thấy PhotoNoteDialogFragment của tôi (!):Nested DialogFragment bị sa thải sau khi luân chuyển
private void newPhotoNote() {
mPhotoDialog = PhotoNoteDialogFragment.newInstance(this);
mPhotoDialog.show(getFragmentManager(), PhotoNoteDialogFragment.TAG);
}
Hộp thoại bật lên, nhưng bị sa thải ngay sau khi tôi xoay thiết bị. Tôi đã thực hiện một số nghiên cứu và thử những điều này mà không thành công:
set PhotoNoteDialogFragment # setRetainInstance (true). Không hoạt động, bởi vì các mảnh vỡ lồng nhau không thể được giữ lại.
Sử dụng đoạn mã này trong PhotoNoteDialogFragment để ngăn chặn một lỗi sẽ đặt không mong muốn bỏ cuộc gọi từ hệ thống:
@Override public void onDestroyView() { if (getDialog() != null) getDialog().setDismissMessage(null); super.onDestroyView(); }
- Cố gắng gọi show() - Phương pháp trong Fragment lồng nhau của tôi #onActivityCreated, nếu trường hợp của các PhotoNoteDialogFragment ist không null:
@Override public void onActivityCreated(final Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (mPhotoNoteDialogFragment != null) { mPhotoNoteDialogFragment.show(getFragmentManager(), PhotoNoteDialogFragment.TAG); } }
Không ai trong số những nỗ lực này có thể làm cho DialogFragment xuất hiện trở lại sau khi xoay màn hình. Có ai khác là một ý tưởng, những gì tôi có thể thử tiếp theo ..? Tôi hết ý tưởng.
thx
Bạn có sử dụng bố cục khác cho chế độ dọc và ngang không ... – Amsheer
Bạn đang thêm đoạn gốc như thế nào? Bạn có chắc nó được hệ thống giữ lại hay bạn đang tạo lại nó theo cách thủ công không? –
@Amsheer: Có, tôi có các bố cục khác nhau cho đoạn lồng nhau cũng như cho hộp thoạiFragment. – muetzenflo