在 android.widget.Scroller 内检测滚动结束
Detect scroll end in android.widget.Scroller
我想根据 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);
}
你可以通过简单的数学计算
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
我想根据 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);
}
你可以通过简单的数学计算
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