Merge "Get rid of pages overhang in AppsCustomizePagedView" into ub-now-porkchop

This commit is contained in:
Adam Cohen
2014-08-15 09:28:44 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 0 deletions
@@ -259,6 +259,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
if (getImportantForAccessibility() == View.IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
}
setSinglePageInViewport();
}
@Override
+20
View File
@@ -166,6 +166,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
protected int mUnboundedScrollX;
protected int[] mTempVisiblePagesRange = new int[2];
protected boolean mForceDrawAllChildrenNextFrame;
private boolean mSpacePagesAutomatically = false;
// mOverScrollX is equal to getScrollX() when we're within the normal scroll range. Otherwise
// it is equal to the scaled overscroll position. We use a separate value so as to prevent
@@ -844,6 +845,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
final int verticalPadding = getPaddingTop() + getPaddingBottom();
final int horizontalPadding = getPaddingLeft() + getPaddingRight();
int referenceChildWidth = 0;
// The children are given the same width and height as the workspace
// unless they were set to WRAP_CONTENT
if (DEBUG) Log.d(TAG, "PagedView.onMeasure(): " + widthSize + ", " + heightSize);
@@ -888,6 +890,9 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
childWidth = getViewportWidth() - mInsets.left - mInsets.right;
childHeight = getViewportHeight();
}
if (referenceChildWidth == 0) {
referenceChildWidth = childWidth;
}
final int childWidthMeasureSpec =
MeasureSpec.makeMeasureSpec(childWidth, childWidthMode);
@@ -896,9 +901,24 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
}
}
if (mSpacePagesAutomatically) {
int spacing = (getViewportWidth() - mInsets.left - mInsets.right
- referenceChildWidth) / 2;
if (spacing >= 0) {
setPageSpacing(spacing);
}
mSpacePagesAutomatically = false;
}
setMeasuredDimension(scaledWidthSize, scaledHeightSize);
}
/**
* This method should be called once before first layout / measure pass.
*/
protected void setSinglePageInViewport() {
mSpacePagesAutomatically = true;
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
if (!mIsDataReady || getChildCount() == 0) {