6

Я изучаю добавление сверхпрокрутки (не изменения цвета) в свой проект, но даже после прочтения документов 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() работает отлично, как капля в замене, но не прокручивать ....

В итоге у меня есть два вопроса:

  1. Почему прокрутка не работает с overScrollBy? Должен ли я добавить дополнительный код, чтобы сделать эту работу?
  2. Зачем мне звонить mScroller.fling() и только overScrollBy()? Почему не mScroller.overScrollBy()? Это как-то встроено в класс View?

Возможно, это может быть совершенно очевидно, но я боюсь здесь. Любая помощь была бы очень признательна, спасибо!

ответ

0

возможно из-за этого?

public class ViewConfiguration{ 
... 
    /** 
    * Max distance in dips to overscroll for edge effects 
    */ 
    private static final int OVERSCROLL_DISTANCE = 0; 
... 
} 
Смежные вопросы