android - 嵌套的 DialogFragment 在旋转后被解雇

标签 android nested android-dialogfragment screen-rotation

我有一个显示我的 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/

相关文章:

Python 3.6 嵌套字典动态更新

python - 嵌套作用域和 Lambda

android - 带有自定义标题的 DialogFragment

java - 不要在 DialogFragment 上再次显示复选框

Android viewflipper 动画滞后

android - Studio:Gradle项目同步失败。

android - ListView 帮助

Python: pickle 嵌套函数

android - 从 DialogFragment 中的 CameraPreview 中删除 backgroundDimAmount

Javascript 正则表达式到 Java 正则表达式