summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/AbsListView.java10
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;
}