6

PhotoNoteDialogFragment を示すネストされた (!) Fragment があります。

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

ダイアログがポップアップしますが、デバイスを回転させるとすぐに消えます。私はすでにいくつかの調査を行っており、これらのことを試してみましたが成功しませんでした:

  • PhotoNoteDialogFragment#setRetainInstance(true) を設定します。ネストされたフラグメントを保持できないため、機能しません。

  • PhotoNoteDialogFragment で次のコード スニペットを使用して、システムから不要な却下呼び出しを行うバグを防止します。

    @オーバーライド
    public void onDestroyView() {
        if (getDialog() != null)
            getDialog().setDismissMessage(null);
        super.onDestroyView();
    }
  • PhotoNoteDialogFragment のインスタンスが null でない場合は、ネストされた 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

オーバーライドする必要はないと思いますonActivityCreated。ダイアログはそれがなくても問題ありません。私も試してみました。アプリでダイアログを表示するonActivityCreatedとクラッシュします。

于 2013-09-08T12:42:38.307 に答える