diff options
author | Winson Chung <winsonc@google.com> | 2012-05-14 17:17:25 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-14 17:17:25 -0700 |
commit | 83d3b12ba6f930ad54ab0cbaa8dffefb23af56c0 (patch) | |
tree | 75330f23ae3c833d05246167a2099691764baf1e /src/com/android/launcher2/PagedView.java | |
parent | 2d441b9d1a4629bbbad9fe8869c40fdf5f763a27 (diff) | |
parent | 8aad610dc58d810ec848a579c548f50c613c8641 (diff) | |
download | android_packages_apps_Trebuchet-83d3b12ba6f930ad54ab0cbaa8dffefb23af56c0.tar.gz android_packages_apps_Trebuchet-83d3b12ba6f930ad54ab0cbaa8dffefb23af56c0.tar.bz2 android_packages_apps_Trebuchet-83d3b12ba6f930ad54ab0cbaa8dffefb23af56c0.zip |
Merge "Making the page spacing fixed in spring loaded mode. (Bug 6478409)" into jb-dev
Diffstat (limited to 'src/com/android/launcher2/PagedView.java')
-rw-r--r-- | src/com/android/launcher2/PagedView.java | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index ac71b1cb2..5d9cf81eb 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -75,6 +75,8 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc private static final int MIN_SNAP_VELOCITY = 1500; private static final int MIN_FLING_VELOCITY = 250; + static final int AUTOMATIC_PAGE_SPACING = -1; + protected int mFlingThresholdVelocity; protected int mMinFlingVelocity; protected int mMinSnapVelocity; @@ -450,17 +452,23 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc final int widthMode = MeasureSpec.getMode(widthMeasureSpec); final int widthSize = MeasureSpec.getSize(widthMeasureSpec); + final int heightMode = MeasureSpec.getMode(heightMeasureSpec); + int heightSize = MeasureSpec.getSize(heightMeasureSpec); if (widthMode != MeasureSpec.EXACTLY) { throw new IllegalStateException("Workspace can only be used in EXACTLY mode."); } + // Return early if we aren't given a proper dimension + if (widthSize <= 0 || heightSize <= 0) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + return; + } + /* Allow the height to be set as WRAP_CONTENT. This allows the particular case * of the All apps view on XLarge displays to not take up more space then it needs. Width * is still not allowed to be set as WRAP_CONTENT since many parts of the code expect * each page to have the same width. */ - final int heightMode = MeasureSpec.getMode(heightMeasureSpec); - int heightSize = MeasureSpec.getSize(heightMeasureSpec); int maxChildHeight = 0; final int verticalPadding = getPaddingTop() + getPaddingBottom(); @@ -507,12 +515,17 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc setMeasuredDimension(widthSize, heightSize); + // We can't call getChildOffset/getRelativeChildOffset until we set the measured dimensions. + // We also wait until we set the measured dimensions before flushing the cache as well, to + // ensure that the cache is filled with good values. + invalidateCachedOffsets(); + if (childCount > 0) { if (DEBUG) Log.d(TAG, "getRelativeChildOffset(): " + getMeasuredWidth() + ", " + getChildWidth(0)); // Calculate the variable page spacing if necessary - if (mPageSpacing < 0) { + if (mPageSpacing == AUTOMATIC_PAGE_SPACING) { // The gap between pages in the PagedView should be equal to the gap from the page // to the edge of the screen (so it is not visible in the current screen). To // account for unequal padding on each side of the paged view, we take the maximum @@ -524,10 +537,6 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } } - // We can't call getChildOffset/getRelativeChildOffset until we set the measured dimensions. - // We also wait until we set the measured dimensions before flushing the cache as well, to - // ensure that the cache is filled with good values. - invalidateCachedOffsets(); updateScrollingIndicatorPosition(); if (childCount > 0) { |