Fix issue #13366. Take account of stackFromBottom in

computeVerticalScrollOffset().

Change-Id: I743708ef1ac05e358840f37010de36b7d0c6a346
Signed-off-by: Pieter-Jan Vandormael <ezelspinguin@gmail.com>
This commit is contained in:
Pieter-Jan Vandormael
2012-06-16 17:11:54 +02:00
parent 0cf342184e
commit bbf7b4cdcf

View File

@@ -2095,8 +2095,13 @@ public class GridView extends AbsListView {
int height = view.getHeight();
if (height > 0) {
final int numColumns = mNumColumns;
final int whichRow = mFirstPosition / numColumns;
final int rowCount = (mItemCount + numColumns - 1) / numColumns;
// In case of stackFromBottom the calculation of whichRow needs
// to take into account that counting from the top the first row
// might not be entirely filled.
final int oddItemsOnFirstRow = isStackFromBottom() ? ((rowCount * numColumns) -
mItemCount) : 0;
final int whichRow = (mFirstPosition + oddItemsOnFirstRow) / numColumns;
return Math.max(whichRow * 100 - (top * 100) / height +
(int) ((float) mScrollY / getHeight() * rowCount * 100), 0);
}