Fixing bug with layout of PagedViewCellLayoutChildren

Change-Id: I3fa34ad500632c4b257973aca9be0cb1bda5884a
This commit is contained in:
Michael Jurka
2011-06-02 16:41:34 -07:00
parent dcfc25ca5f
commit 9bfe2b2646
2 changed files with 15 additions and 19 deletions

View File

@@ -92,8 +92,8 @@ public class PagedViewCellLayoutChildren extends ViewGroup {
PagedViewCellLayout.LayoutParams lp =
(PagedViewCellLayout.LayoutParams) child.getLayoutParams();
lp.setup(mCellWidth, mCellHeight, mWidthGap, mHeightGap,
((ViewGroup)getParent()).getPaddingLeft(),
((ViewGroup)getParent()).getPaddingTop());
getPaddingLeft(),
getPaddingTop());
int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.width,
MeasureSpec.EXACTLY);
@@ -111,18 +111,21 @@ public class PagedViewCellLayoutChildren extends ViewGroup {
int count = getChildCount();
int offsetX = 0;
if (mCenterContent) {
if (mCenterContent && count > 0) {
// determine the max width of all the rows and center accordingly
int maxRowWidth = 0;
int maxRowX = 0;
int minRowX = Integer.MAX_VALUE;
for (int i = 0; i < count; i++) {
View child = getChildAt(i);
if (child.getVisibility() != GONE) {
PagedViewCellLayout.LayoutParams lp =
(PagedViewCellLayout.LayoutParams) child.getLayoutParams();
maxRowWidth = Math.max(maxRowWidth, lp.x + lp.width);
minRowX = Math.min(minRowX, lp.x);
maxRowX = Math.max(maxRowX, lp.x + lp.width);
}
}
offsetX = (getMeasuredWidth() / 2) - (maxRowWidth / 2);
int maxRowWidth = maxRowX - minRowX;
offsetX = (getMeasuredWidth() - maxRowWidth) / 2;
}
for (int i = 0; i < count; i++) {