2

我想根据 onTouchEvent 检查 MotionEvent.ACTION_UP 来检测用户何时停止使用 android.widget.Scroller 滚动。当用户滚动一次它可以正常工作但是当用户快速滚动以到达特定位置时,它表明用户滚动了很多次,尽管我想将它检测为一个滚动。我怎样才能做到这一点?

@Override
public boolean onTouchEvent(MotionEvent event) {
    if(event.getAction() == MotionEvent.ACTION_UP) {
      if(mIsScrolling) {
        mIsScrolling = false;
        //
      }
    }
    mScaleDetector.onTouchEvent(event);
    return mGestureDetector.onTouchEvent(event);
}
4

1 回答 1

1

你可以通过简单的数学来做到这一点

getCurrX(), getCurrY() methods returns current offset position x and y of scroller respectively

相似地

getFinalX(), getFinalY() methods returns current offset positions x and y of scroller respectively

所以

if(getCurrY() == getFinalY()) // true means you reached end of the scroller

供参考此处的文档Scroller

于 2019-03-18T13:53:08.327 回答