diff options
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 1 | ||||
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index bbf5ae933153..6b2ed912d9d4 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -2829,6 +2829,7 @@ public final class ViewRootImpl implements ViewParent, setAccessibilityFocus(null, null); + mView.assignParent(null); mView = null; mAttachInfo.mRootView = null; mAttachInfo.mSurface = null; diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index bf662924b7f3..219891c4627b 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -6390,7 +6390,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te int viewType = lp.viewType; final boolean scrapHasTransientState = scrap.hasTransientState(); if (!shouldRecycleViewType(viewType) || scrapHasTransientState) { - if (viewType != ITEM_VIEW_TYPE_HEADER_OR_FOOTER || scrapHasTransientState) { + if (viewType != ITEM_VIEW_TYPE_HEADER_OR_FOOTER && scrapHasTransientState) { if (mSkippedScrap == null) { mSkippedScrap = new ArrayList<View>(); } @@ -6464,7 +6464,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te final boolean scrapHasTransientState = victim.hasTransientState(); if (!shouldRecycleViewType(whichScrap) || scrapHasTransientState) { // Do not move views that should be ignored - if (whichScrap != ITEM_VIEW_TYPE_HEADER_OR_FOOTER || + if (whichScrap != ITEM_VIEW_TYPE_HEADER_OR_FOOTER && scrapHasTransientState) { removeDetachedView(victim, false); } |