diff options
| -rw-r--r-- | core/java/android/widget/ListView.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 9ef1aa1a1f2d..7f7a3a715a23 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -3361,6 +3361,7 @@ public class ListView extends AbsListView { final ListAdapter adapter = mAdapter; int closetChildIndex = -1; + int closestChildTop = 0; if (adapter != null && gainFocus && previouslyFocusedRect != null) { previouslyFocusedRect.offset(mScrollX, mScrollY); @@ -3392,12 +3393,13 @@ public class ListView extends AbsListView { if (distance < minDistance) { minDistance = distance; closetChildIndex = i; + closestChildTop = other.getTop(); } } } if (closetChildIndex >= 0) { - setSelection(closetChildIndex + mFirstPosition); + setSelectionFromTop(closetChildIndex + mFirstPosition, closestChildTop); } else { requestLayout(); } |