diff options
| author | 2016-11-07 21:48:42 +0000 | |
|---|---|---|
| committer | 2016-11-07 21:48:45 +0000 | |
| commit | e6022a40ad79ae59aa602bb251d92572c7db27aa (patch) | |
| tree | f4bf893fc832235eeb8e3058278be4c6c3b5d097 | |
| parent | 9310f59cac8b63ca792a8e2d3f9dbbaba477fc61 (diff) | |
| parent | 400ef79b8e40d586f6123aa44dfbf3495156fb20 (diff) | |
Merge "Add safety net if StackView duration would be negative."
| -rw-r--r-- | core/java/android/widget/StackView.java | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/core/java/android/widget/StackView.java b/core/java/android/widget/StackView.java index 0e99c02cc6aa..1b9055ce33ab 100644 --- a/core/java/android/widget/StackView.java +++ b/core/java/android/widget/StackView.java @@ -1051,6 +1051,11 @@ public class StackView extends AdapterViewAnimator { float d = (float) Math.hypot(viewLp.horizontalOffset, viewLp.verticalOffset); float maxd = (float) Math.hypot(mSlideAmount, 0.4f * mSlideAmount); + if (d > maxd) { + // Because mSlideAmount is updated in onLayout(), it is possible that d > maxd + // if we get onLayout() right before this method is called. + d = maxd; + } if (velocity == 0) { return (invert ? (1 - d / maxd) : d / maxd) * DEFAULT_ANIMATION_DURATION; |