diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 5ef358bc33140..a65de13c17e85 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -5319,6 +5319,24 @@ public abstract class AbsListView extends AdapterView implements Te mRecycler.mRecyclerListener = listener; } + class AdapterDataSetObserver extends AdapterView.AdapterDataSetObserver { + @Override + public void onChanged() { + super.onChanged(); + if (mFastScroller != null) { + mFastScroller.onSectionsChanged(); + } + } + + @Override + public void onInvalidated() { + super.onInvalidated(); + if (mFastScroller != null) { + mFastScroller.onSectionsChanged(); + } + } + } + /** * A MultiChoiceModeListener receives events for {@link AbsListView#CHOICE_MODE_MULTIPLE_MODAL}. * It acts as the {@link ActionMode.Callback} for the selection mode and also receives diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index dfa94c75aaaa3..200c870f3790f 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -476,6 +476,10 @@ class FastScroller { } } + public void onSectionsChanged() { + mListAdapter = null; + } + private void scrollTo(float position) { int count = mList.getCount(); mScrollCompleted = false;