diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index f4fe1eb1cc6ee..7ef6d414ed84d 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -1486,6 +1486,10 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene final int version = context != null ? context.getApplicationInfo().targetSdkVersion : 0; if (version >= Build.VERSION_CODES.N) { restoreChildFragmentState(savedInstanceState, true); + if (mChildFragmentManager != null + && !mChildFragmentManager.isStateAtLeast(Fragment.CREATED)) { + mChildFragmentManager.dispatchCreate(); + } } } diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index d79538558b9a8..13b271681cf86 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -870,6 +870,10 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate } } + boolean isStateAtLeast(int state) { + return mCurState >= state; + } + void moveToState(Fragment f, int newState, int transit, int transitionStyle, boolean keepActive) { if (DEBUG && false) Log.v(TAG, "moveToState: " + f