0

我有自动滚动的 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;
    }
4

1 回答 1

0

mXPaused如果您从最左边开始,则应为 0,而不是mXpaused = -1*getWidth().

尝试使用getScrollX()而不是getCurrX(),我在尝试获取滚动位置时遇到了类似的问题。

于 2013-09-11T15:41:43.203 回答