From dcce1216b0066f3f9ed1b01a485684e8617e7ea4 Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Mon, 31 Oct 2011 16:41:21 -0700 Subject: [PATCH] Fix bug 5514022 - ListView should not auto-scroll selected item to top when gaining focus Change-Id: I9b82cba3d48a211b1d2017d66791bea466938cab --- core/java/android/widget/ListView.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index 9ef1aa1a1f2db..7f7a3a715a23c 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(); }