我有一个DialogFragment,说A启动另一个DialogFragment,比如B使用FragmentManager。当我旋转屏幕时,有时B隐藏在A后面。现在有了这种情况,我看不到B,如果我解雇A,B会导致崩溃。这不会永远发生。我已经能够重现它几次。
问题:
答案 0 :(得分:1)
当屏幕旋转时,活动会重新创建,但DialogFragment
的实例未保存,因此当您在其上调用dismiss();
时,您会收到NullPointerException
,因为您已调用<{1}}在空对象上。
当您致电dismiss();
时,请使用您在拨打dismiss()
show(getSupportFragmentManager, TAG);
时使用的**标记*,最后如果显示,则拨打findFragmentByTag(TAG);
。
根据您提供的信息,我认为这是......