我有一个显示我的 PhotoNoteDialogFragment 的嵌套(!) fragment :
private void newPhotoNote() {
mPhotoDialog = PhotoNoteDialogFragment.newInstance(this);
mPhotoDialog.show(getFragmentManager(), PhotoNoteDialogFragment.TAG);
}
对话框弹出,但在我旋转设备后立即消失。我已经做了一些研究并尝试了这些东西但没有成功:
设置 PhotoNoteDialogFragment#setRetainInstance(true)。不起作用,因为无法保留嵌套的 Fragment。
在 PhotoNoteDialogFragment 中使用此代码 fragment 可防止系统发出不需要的关闭调用的错误:
@Override public void onDestroyView() { if (getDialog() != null) getDialog().setDismissMessage(null); super.onDestroyView(); }
- 如果 PhotoNoteDialogFragment 的实例不为空,请尝试在我的嵌套 Fragment#onActivityCreated 中调用 show() 方法:
@Override public void onActivityCreated(final Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (mPhotoNoteDialogFragment != null) { mPhotoNoteDialogFragment.show(getFragmentManager(), PhotoNoteDialogFragment.TAG); } }
这些尝试都无法使 DialogFragment 在屏幕旋转后再次出现。 有没有其他人有想法,我接下来可以尝试什么......?我没主意了。
谢谢
最佳答案
我认为您不必覆盖 onActivityCreated
,没有它您的对话框也可以。我也试过了。如果您在 onActivityCreated
上显示对话框,您的应用将会崩溃。
关于android - 嵌套的 DialogFragment 在旋转后被解雇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17188829/