diff options
-rw-r--r-- | core/java/android/widget/HorizontalScrollView.java | 8 | ||||
-rw-r--r-- | core/java/android/widget/ScrollView.java | 10 |
2 files changed, 11 insertions, 7 deletions
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java index fee3455..db54a0d 100644 --- a/core/java/android/widget/HorizontalScrollView.java +++ b/core/java/android/widget/HorizontalScrollView.java @@ -502,8 +502,10 @@ public class HorizontalScrollView extends FrameLayout { switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: { - final float x = ev.getX(); - mIsBeingDragged = true; + mIsBeingDragged = getChildCount() != 0; + if (!mIsBeingDragged) { + return false; + } /* * If being flinged and user touches, stop the fling. isFinished @@ -514,7 +516,7 @@ public class HorizontalScrollView extends FrameLayout { } // Remember where the motion event started - mLastMotionX = x; + mLastMotionX = ev.getX(); mActivePointerId = ev.getPointerId(0); break; } diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index 2ad67ba..de38d05 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -497,9 +497,11 @@ public class ScrollView extends FrameLayout { switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: { - final float y = ev.getY(); - mIsBeingDragged = true; - + mIsBeingDragged = getChildCount() != 0; + if (!mIsBeingDragged) { + return false; + } + /* * If being flinged and user touches, stop the fling. isFinished * will be false if being flinged. @@ -509,7 +511,7 @@ public class ScrollView extends FrameLayout { } // Remember where the motion event started - mLastMotionY = y; + mLastMotionY = ev.getY(); mActivePointerId = ev.getPointerId(0); break; } |