屏幕旋转后,对话框片段会延迟绘制

时间:2016-02-18 22:37:00

标签: android android-dialogfragment screen-rotation dialogfragment

我有一个DialogFragment,说A启动另一个DialogFragment,比如B使用FragmentManager。当我旋转屏幕时,有时B隐藏在A后面。现在有了这种情况,我看不到B,如果我解雇A,B会导致崩溃。这不会永远发生。我已经能够重现它几次。

问题:

  1. 为什么会发生这种情况?
  2. 有什么方法可以避免这种情况吗?

1 个答案:

答案 0 :(得分:1)

为什么?

当屏幕旋转时,活动会重新创建,但DialogFragment的实例未保存,因此当您在其上调用dismiss();时,您会收到NullPointerException,因为您已调用<{1}}在空对象上。

如何避免

当您致电dismiss();时,请使用您在拨打dismiss() show(getSupportFragmentManager, TAG);时使用的**标记*,最后如果显示,则拨打findFragmentByTag(TAG);

根据您提供的信息,我认为这是......