DialogFragmentを継承した独自クラスを作成し、ボタンをタップしたときにshowメソッドでdialogを表示させる実装をしていたのですが、ボタンをタップしてすぐにViewの切り替えを行ったとき、
Error Can not perform this action after onSaveInstanceState
このようなエラーが出るようになってしまいました。
この場合、
SampleDialogFragment dialog = new SampleDialogFragment(); dialog.show(getSupportFragmentManager(), "sampleDialog");
こちらではなく、
SampleDialogFragment dialog = new SampleDialogFragment(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.add(dialog, null); ft.commitAllowingStateLoss();
こちらのようにcommitAllowingStateLossで呼び出す必要があるようでした。
ただ、こちらのメソッドには色々弊害などもあるようで、詳しくはこちらに書かれていました。