Bounding scroll bar to the track to prevent overscrolling.

Change-Id: I2db815e072dcf41dda8102829d136fc2dca588e7
This commit is contained in:
Winson Chung
2011-09-09 11:44:31 -07:00
parent a1c7ff1219
commit 09c1552341
+3 -1
View File
@@ -1776,11 +1776,13 @@ public abstract class PagedView extends ViewGroup {
int numPages = getChildCount();
int pageWidth = getMeasuredWidth();
int maxPageWidth = (numPages * getChildWidth(0)) + ((numPages - 1) * mPageSpacing);
int maxScrollPosition = maxPageWidth - pageWidth; // n-1 * pageWidth
int trackWidth = pageWidth - mScrollIndicatorPaddingLeft - mScrollIndicatorPaddingRight;
int indicatorWidth = mScrollIndicator.getMeasuredWidth() -
mScrollIndicator.getPaddingLeft() - mScrollIndicator.getPaddingRight();
float offset = (float) getScrollX() / maxPageWidth;
float offset = (float) Math.max(0f, Math.min(maxScrollPosition, getScrollX()))
/ maxPageWidth;
int indicatorSpace = trackWidth / numPages;
int indicatorPos = (int) (offset * trackWidth) + mScrollIndicatorPaddingLeft;
if (hasElasticScrollIndicator()) {