diff options
| author | Adam Powell <adamp@google.com> | 2010-09-03 12:04:25 -0700 |
|---|---|---|
| committer | Adam Powell <adamp@google.com> | 2010-09-03 12:06:51 -0700 |
| commit | e6ffce9f65a1a8f498eb51a993a8cbf5f13a109e (patch) | |
| tree | 324ed79f5d4094badd8c715192e42f4c128f4d7f /core/java/android/widget/ScrollView.java | |
| parent | 46e63b346770efa14451b8e67b7f7636c4e5a76c (diff) | |
Fix bug 2973252 - Make overscroll glow respect ifContentScrolls
Change-Id: I0e4bf09c0cbc660c9b8d26a3526b09568c05e93d
Diffstat (limited to 'core/java/android/widget/ScrollView.java')
| -rw-r--r-- | core/java/android/widget/ScrollView.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index 7b5e4125eca8..2ba1c4791705 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -533,11 +533,15 @@ public class ScrollView extends FrameLayout { } onScrollChanged(mScrollX, mScrollY, oldX, oldY); - final int pulledToY = oldY + deltaY; - if (pulledToY < 0) { - mEdgeGlowTop.onPull((float) deltaY / getHeight()); - } else if (pulledToY > range) { - mEdgeGlowBottom.onPull((float) deltaY / getHeight()); + final int overscrollMode = getOverscrollMode(); + if (overscrollMode == OVERSCROLL_ALWAYS || + (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && range > 0)) { + final int pulledToY = oldY + deltaY; + if (pulledToY < 0) { + mEdgeGlowTop.onPull((float) deltaY / getHeight()); + } else if (pulledToY > range) { + mEdgeGlowBottom.onPull((float) deltaY / getHeight()); + } } } break; @@ -1090,10 +1094,14 @@ public class ScrollView extends FrameLayout { onScrollChanged(mScrollX, mScrollY, oldX, oldY); final int range = getScrollRange(); - if (y < 0 && oldY >= 0) { - mEdgeGlowTop.onAbsorb((int) mScroller.getCurrVelocity()); - } else if (y > range && oldY <= range) { - mEdgeGlowBottom.onAbsorb((int) mScroller.getCurrVelocity()); + final int overscrollMode = getOverscrollMode(); + if (overscrollMode == OVERSCROLL_ALWAYS || + (overscrollMode == OVERSCROLL_IF_CONTENT_SCROLLS && range > 0)) { + if (y < 0 && oldY >= 0) { + mEdgeGlowTop.onAbsorb((int) mScroller.getCurrVelocity()); + } else if (y > range && oldY <= range) { + mEdgeGlowBottom.onAbsorb((int) mScroller.getCurrVelocity()); + } } } awakenScrollBars(); |
