diff options
| author | Adam Powell <adamp@google.com> | 2011-01-18 20:43:23 -0800 |
|---|---|---|
| committer | Adam Powell <adamp@google.com> | 2011-01-18 20:44:01 -0800 |
| commit | b1f498afc379ec84b86137e91afda6eccb8f4c0a (patch) | |
| tree | d5bb4a627840b4e578e890fed652bebccab2f3dc /core/java/android/widget | |
| parent | 6cfc7a0acb0d3b202ae1dbee88e7e8bdfaee5590 (diff) | |
Fix bug 3362258 - Fastscroll is out of sync with the list
Change-Id: I13282bfed355f5794041e83818ee2e9e97c1b318
Diffstat (limited to 'core/java/android/widget')
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 18 | ||||
| -rw-r--r-- | core/java/android/widget/FastScroller.java | 4 |
2 files changed, 22 insertions, 0 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index d8f597207dac..f85772ca898e 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -5315,6 +5315,24 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te mRecycler.mRecyclerListener = listener; } + class AdapterDataSetObserver extends AdapterView<ListAdapter>.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 dfa94c75aaaa..200c870f3790 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; |
