diff options
Diffstat (limited to 'src/com/android/launcher2/CustomizePagedView.java')
-rw-r--r-- | src/com/android/launcher2/CustomizePagedView.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java index 92b73a0f7..cf1aa6b12 100644 --- a/src/com/android/launcher2/CustomizePagedView.java +++ b/src/com/android/launcher2/CustomizePagedView.java @@ -54,6 +54,7 @@ import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.View.MeasureSpec; import android.view.animation.DecelerateInterpolator; import android.view.animation.LinearInterpolator; import android.widget.Checkable; @@ -124,6 +125,8 @@ public class CustomizePagedView extends PagedViewWithDraggableItems private final Canvas mCanvas = new Canvas(); private final LayoutInflater mInflater; + private boolean mFirstMeasure = true; + private final float mTmpFloatPos[] = new float[2]; private final float ANIMATION_SCALE = 0.5f; @@ -190,6 +193,31 @@ public class CustomizePagedView extends PagedViewWithDraggableItems mCenterPagesVertically = false; } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + final int widthSize = MeasureSpec.getSize(widthMeasureSpec); + final int heightSize = MeasureSpec.getSize(heightMeasureSpec); + + if (mFirstMeasure) { + mFirstMeasure = false; + + // TODO: actually calculate mCellCountX/mCellCountY as some function of + // widthSize and heightSize + //mCellCountX = ? + //mCellCountY = ? + + // Since mCellCountX/mCellCountY changed, we need to update the pages + invalidatePageData(); + + // Create a dummy page and set it up to find out the content width (used by our parent) + PagedViewCellLayout layout = new PagedViewCellLayout(getContext()); + setupPage(layout); + mPageContentWidth = layout.getContentWidth(); + } + } + public void setLauncher(Launcher launcher) { Context context = getContext(); mLauncher = launcher; @@ -1095,6 +1123,11 @@ public class CustomizePagedView extends PagedViewWithDraggableItems @Override public void syncPages() { + if (mFirstMeasure) { + // We don't know our size yet, which means we haven't calculated cell count x/y; + // onMeasure will call us once we figure out our size + return; + } boolean enforceMinimumPagedWidths = false; boolean centerPagedViewCellLayouts = false; switch (mCustomizationType) { |