прокрутка Android-скроллера с текущей позиции

У меня есть TextView с автопрокруткой, которая зацикливается навсегда. Кроме того, пользователь может сам прокручивать TextView. Поэтому, когда пользователь закончил прокрутку, я хочу, чтобы автопрокрутка продолжала прокрутку с позиции, в которой пользователь закончил прокрутку.

Вся проблема заключается в получении правильного значения переменной mXPaused.

В самом начале mXpaused = -1*getWidth(); Итак, начинается прокрутка с левой стороны.

После того, как пользователь закончил прокрутку, я пытаюсь присвоить новое значение

case MotionEvent.ACTION_UP:
        mXPaused = mSlr.getCurrX();
        resumeScroll();
        break;

Но это значение всегда равно -540 (моя ширина экрана)

public void resumeScroll() {

mSlr.startScroll(mXPaused, 0, distance, 0, duration);

}

Прокрутка пользователя:

@Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2,
            float distanceX, float distanceY) {
        // TODO Auto-generated method stub
        scrollBy((int)distanceX, 0);
        return true;
    }

person kort.es    schedule 30.04.2013    source источник


Ответы (1)


mXPaused должно быть 0, если вы начинаете с крайнего левого угла, а не mXpaused = -1*getWidth().

попробуйте использовать getScrollX() вместо getCurrX(), у меня были похожие проблемы при попытке получить положение прокрутки.

person kburbach    schedule 11.09.2013