本篇文章属于android仿薄荷卷尺系列文章
滑动完成过完后要调整偏移量,使偏移量刚好为oneStep的整数倍
滑动完成过完后要调整偏移量,使偏移量刚好为oneStep的整数倍
1. 判断Scroll.fling滑动是否完成
方法:在ACTION_UP后,postDelay一个Runnable,在Runnabel中,通过判断scrollx是否在变化,如果scrollX没有变化,就证明已经滑动完成。
...
case MotionEvent.ACTION_UP:
...
sartAjust();
...
...
Runnable adjustRunnable = new Runnable() {
@Override
public void run() {
int scrollX = getScrollX();
if (currentScrollX == scrollX) {//滑动结束
调整代码
} else {//继续检测
sartAjust();
}
}
};
private void sartAjust() {
currentScrollX = getScrollX();
postDelayed(adjustRunnable, CHECKTIME);
}
2. 调整偏移距离的计算代码
int more = scrollX % oneStep;//多余距离
int remain=oneStep * (scrollX / Math.abs(scrollX))-more;//剩余距离
if (Math.abs(more) > oneStep / 2) {
scrollBy(remain, 0);
} else {
scrollBy(-more, 0);
}