6

我有一个嵌套的(!)片段,它显示了我的 PhotoNoteDialogFragment:

private void newPhotoNote() {
  mPhotoDialog = PhotoNoteDialogFragment.newInstance(this);
  mPhotoDialog.show(getFragmentManager(), PhotoNoteDialogFragment.TAG);
}

对话框会弹出,但一旦我旋转设备就会消失。我已经做了一些研究并尝试了这些事情但没有成功:

  • 设置 PhotoNoteDialogFragment#setRetainInstance(true)。不起作用,因为嵌套的 Fragments 不能不被保留。

  • 在 PhotoNoteDialogFragment 中使用此代码片段来防止从系统发出不需要的关闭调用的错误:

    @覆盖
    公共无效 onDestroyView() {
        如果(getDialog()!= null)
            getDialog().setDismissMessage(null);
        super.onDestroyView();
    }
  • 如果 PhotoNoteDialogFragment 的实例不为空,请尝试在我的嵌套 Fragment#onActivityCreated 中调用 show()-Method:
  @覆盖
  public void onActivityCreated(final Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (mPhotoNoteDialogFragment != null) {
      mPhotoNoteDialogFragment.show(getFragmentManager(), PhotoNoteDialogFragment.TAG);
    }
  }

这些尝试都不能使 DialogFragment 在屏幕旋转后再次出现。有其他人有什么想法,我接下来可以尝试什么..?我没主意了。

谢谢

4

1 回答 1

0

我认为您不必 override onActivityCreated,没有它您的对话框就可以了。我也试过了。如果您在onActivityCreated应用程序上显示对话框,则会崩溃。

于 2013-09-08T12:42:38.307 回答