diff options
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index bec62b1b2b0d..23e5806ee5ed 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -4224,7 +4224,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te // into the scrap heap int viewType = lp.viewType; if (!shouldRecycleViewType(viewType)) { - removeDetachedView(scrap, false); + if (viewType != ITEM_VIEW_TYPE_HEADER_OR_FOOTER) { + removeDetachedView(scrap, false); + } return; } @@ -4258,9 +4260,11 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te activeViews[i] = null; - if (whichScrap == AdapterView.ITEM_VIEW_TYPE_IGNORE) { - removeDetachedView(victim, false); + if (!shouldRecycleViewType(whichScrap)) { // Do not move views that should be ignored + if (whichScrap != ITEM_VIEW_TYPE_HEADER_OR_FOOTER) { + removeDetachedView(victim, false); + } continue; } |