Merge "Fix issue #13366. Take account of stackFromBottom in computeVerticalScrollOffset()."

This commit is contained in:
Jean-Baptiste Queru
2012-06-18 08:53:18 -07:00
committed by android code review

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);
}