diff options
-rw-r--r-- | core/java/android/widget/AbsListView.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 7ea0613..3fd0e5d 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -7196,7 +7196,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te // within that row by subtracting the height of each preceeding row. int remainingOffset = mOffset; int targetHeight = getHeightForRow(targetRow); - while (targetRow > 0 && remainingOffset > targetHeight) { + while (targetRow > 1 && remainingOffset > targetHeight) { targetRow--; remainingOffset -= targetHeight; targetHeight = getHeightForRow(targetRow); @@ -7204,7 +7204,10 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te // Compute the offset within the actual target row. final float targetOffsetRatio; - if (targetHeight == 0) { + if (remainingOffset > 0) { + // We can't reach that offset given the row count. + targetOffsetRatio = 0; + } else if (targetHeight == 0) { targetOffsetRatio = 1; } else { targetOffsetRatio = remainingOffset / (float) targetHeight; |