summaryrefslogtreecommitdiff
path: root/core/java/android/widget/StackView.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/widget/StackView.java')
-rw-r--r--core/java/android/widget/StackView.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/widget/StackView.java b/core/java/android/widget/StackView.java
index ed06deda3d65..0476d28fffdf 100644
--- a/core/java/android/widget/StackView.java
+++ b/core/java/android/widget/StackView.java
@@ -784,6 +784,18 @@ public class StackView extends AdapterViewAnimator {
int stackDirection = (mStackMode == ITEMS_SLIDE_UP) ? 1 : -1;
+ // We need to prevent any clipping issues which may arise by setting a layer type.
+ // This doesn't come for free however, so we only want to enable it when required.
+ if (Float.compare(0f, mYProgress) != 0 && Float.compare(1.0f, mYProgress) != 0) {
+ if (mView.getLayerType() == LAYER_TYPE_NONE) {
+ mView.setLayerType(LAYER_TYPE_HARDWARE, null);
+ }
+ } else {
+ if (mView.getLayerType() != LAYER_TYPE_NONE) {
+ mView.setLayerType(LAYER_TYPE_NONE, null);
+ }
+ }
+
switch (mMode) {
case NORMAL_MODE:
viewLp.setVerticalOffset(Math.round(-r * stackDirection * mSlideAmount));