diff options
| author | 2011-01-17 12:42:41 -0800 | |
|---|---|---|
| committer | 2011-01-17 12:46:21 -0800 | |
| commit | 6c742f1e95dfe1f808bf02fadd5fbf9660b95050 (patch) | |
| tree | 899ddef04c36badcb58361a58ff3cbd60936080c | |
| parent | 38f79d01db07f7cc3d3b49d594b675adfa8959d5 (diff) | |
Catching some edge cases while flinging/scrolling in NumberPicker
1. If the scroll is exactly divisible by the scroll item height
the selector wheell is one off from the current value/text input.
Change-Id: I12721e85a99f6a5b51f5ad6f13c3836cb156c9a4
| -rw-r--r-- | core/java/android/widget/NumberPicker.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index ba46a3f3b9ff..63dbfbfc0352 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -754,7 +754,7 @@ public class NumberPicker extends LinearLayout { return; } mCurrentScrollOffset += y; - while (mCurrentScrollOffset - mInitialScrollOffset > mSelectorElementHeight) { + while (mCurrentScrollOffset - mInitialScrollOffset >= mSelectorElementHeight) { mCurrentScrollOffset -= mSelectorElementHeight; decrementSelectorIndices(selectorIndices); changeCurrent(selectorIndices[SELECTOR_MIDDLE_ITEM_INDEX]); @@ -762,7 +762,7 @@ public class NumberPicker extends LinearLayout { mCurrentScrollOffset = mInitialScrollOffset; } } - while (mCurrentScrollOffset - mInitialScrollOffset < -mSelectorElementHeight) { + while (mCurrentScrollOffset - mInitialScrollOffset <= -mSelectorElementHeight) { mCurrentScrollOffset += mSelectorElementHeight; incrementScrollSelectorIndices(selectorIndices); changeCurrent(selectorIndices[SELECTOR_MIDDLE_ITEM_INDEX]); @@ -1147,8 +1147,8 @@ public class NumberPicker extends LinearLayout { postAdjustScrollerCommand(0); tryNotifyScrollListener(OnScrollListener.SCROLL_STATE_IDLE); } else { - showInputControls(); updateInputTextView(); + showInputControls(); } } @@ -1537,8 +1537,8 @@ public class NumberPicker extends LinearLayout { public void run() { mPreviousScrollerY = 0; if (mInitialScrollOffset == mCurrentScrollOffset) { - showInputControls(); updateInputTextView(); + showInputControls(); return; } // adjust to the closest value |