Я изучаю добавление сверхпрокрутки (не изменения цвета) в свой проект, но даже после прочтения документов API и нескольких вопросов здесь я до сих пор не совсем понимаю, что мне нужно сделать чтобы заставить его работать.Понимание того, как использовать класс OverScroller
Согласно API док для OverScroller: «этот класс инкапсулирует скроллинг с возможностью перерегулирования границы прокруткой работы Этот класс является заменой для скроллер в большинстве случаев.»
у меня был объект скроллер раньше в моем родительском классе:
public boolean onTouchEvent(MotionEvent ev) {
....// code to calculate deltas
if (deltaY != 0 || deltaX != 0)
scrollBy(deltaX, deltaY);
}
И я пошел, чтобы изменить его к этому:
if (deltaY != 0 || deltaX != 0)
overScrollBy(deltaX, deltaY, getScrollX(), getScrollY(),
child.getRight() - getWidth(), child.getBottom() - getHeight(),
OVERSCROLL_DISTANCE, OVERSCROLL_DISTANCE, false);
И теперь прокрутка не работает вообще! fling()
работает отлично, как капля в замене, но не прокручивать ....
В итоге у меня есть два вопроса:
- Почему прокрутка не работает с
overScrollBy
? Должен ли я добавить дополнительный код, чтобы сделать эту работу? - Зачем мне звонить
mScroller.fling()
и толькоoverScrollBy()
? Почему неmScroller.overScrollBy()
? Это как-то встроено в классView
?
Возможно, это может быть совершенно очевидно, но я боюсь здесь. Любая помощь была бы очень признательна, спасибо!