- do not make inactive the fragment when its transition animation is ending.
Long explanation:
Context: you need to have a first fragment pushed and then a second one replacing
the first one, and then create a DialogFragment on top of it. The FragmentManager
has then three "active" Fragments.
The mActive ArrayList of the FragmentManager is then containing:
mActive[0] = first fragment
mActive[1] = second fragment (parent of the dialog fragment)
mActive[2[ = dialog fragment
Then suppose you are changing the orientation.
During the restoration of the FragmentManager states, you will see that the
first Fragment is marked "inactive" and the mActive ArrayList is looking like:
mActive[0] = dialog fragment
mActive[1] = second fragment
which leads first to have a call to onCreateDialog() for the DialogFragment and
before it can be able to restore its state thru the calls to onCreate() and
onCreateView() for the parent (the second fragment).
Change-Id: I0268bdf13e4bdd07a783c2c82a13b431d0c5c8e4
if (fragment.mAnimatingAway != null) {
fragment.mAnimatingAway = null;
moveToState(fragment, fragment.mStateAfterAnimating,
- 0, 0, false);
+ 0, 0, true);
}
}
});