diff options
-rw-r--r-- | core/java/android/app/Activity.java | 5 | ||||
-rw-r--r-- | core/java/android/app/BackStackRecord.java | 6 | ||||
-rw-r--r-- | core/java/android/app/Fragment.java | 5 | ||||
-rw-r--r-- | core/java/android/app/FragmentManager.java | 1 |
4 files changed, 17 insertions, 0 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 701ab1d..9e53a35 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -745,6 +745,11 @@ public class Activity extends ContextThemeWrapper public View findViewById(int id) { return Activity.this.findViewById(id); } + @Override + public boolean hasView() { + Window window = Activity.this.getWindow(); + return (window != null && window.peekDecorView() != null); + } }; // Most recent call to requestVisibleBehind(). diff --git a/core/java/android/app/BackStackRecord.java b/core/java/android/app/BackStackRecord.java index 832e1e3..8644c3d 100644 --- a/core/java/android/app/BackStackRecord.java +++ b/core/java/android/app/BackStackRecord.java @@ -868,6 +868,9 @@ final class BackStackRecord extends FragmentTransaction implements */ private void calculateFragments(SparseArray<Fragment> firstOutFragments, SparseArray<Fragment> lastInFragments) { + if (!mManager.mContainer.hasView()) { + return; // nothing to see, so no transitions + } Op op = mHead; while (op != null) { switch (op.cmd) { @@ -923,6 +926,9 @@ final class BackStackRecord extends FragmentTransaction implements */ public void calculateBackFragments(SparseArray<Fragment> firstOutFragments, SparseArray<Fragment> lastInFragments) { + if (!mManager.mContainer.hasView()) { + return; // nothing to see, so no transitions + } Op op = mHead; while (op != null) { switch (op.cmd) { diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index a95abab..5196834 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -2015,6 +2015,11 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene } return mView.findViewById(id); } + + @Override + public boolean hasView() { + return (mView != null); + } }, this); } diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index ef69fdd..fc761fe 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -395,6 +395,7 @@ final class FragmentManagerState implements Parcelable { */ interface FragmentContainer { public View findViewById(int id); + public boolean hasView(); } /** |