在显示DialogFragment的旋转期间未调用Android Caller Fragment的OnCreateView

时间:2015-01-20 16:35:05

标签: android android-fragments fragment dialogfragment

所以我有一个Activity显示Fragment(允许调用A),它还会显示DialogFragment(让我们调用B)。而" B"打开用户旋转然后解雇" B"。结果是" A"不再知道它的任何变量......主要片段" A"似乎在旋转发生时运行OnCreateView但不是在" B"被展示。

我在片段" A"的构造函数OnCreateViewOnResumeOnStart上添加了断点。当显示一个对话框时,在活动的Fragment旋转期间发生的唯一事情就是构造函数。但是当旋转期间内存中没有DialogFragment时,生命周期事件,最重要的是OnCreateView,就像你期望的那样发生。

以下是从OnCreate(Bundle bundle)更改方向期间在Activity中发生的代码:

string fTag = "ftag";
//will work, but shows null if dialog was open during rotate
_fragment = (CustomFragment) FragmentManager.FindFragmentByTag(fTag);
if(_fragment == null) {
  _fragment = new CustomFragment(fTag, "Title Here");
}

在上面的代码块中,如果没有对话框,FragmentManager会找到片段,但在方向更改后显示对话框时却找不到片段...

有没有人遇到过这个?我错过了一个可行的生命周期事件吗?我根本不了解Android SDK开发人员的想法。

0 个答案:

没有答案