diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt index 381991193..a2d8bf6e1 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/ScrollPageDelegate.kt @@ -34,10 +34,14 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) { override fun onTouch(event: MotionEvent) { //在多点触控时,事件不走ACTION_DOWN分支而产生的特殊事件处理 - if (event.actionMasked == MotionEvent.ACTION_POINTER_DOWN){ + if (event.actionMasked == MotionEvent.ACTION_POINTER_DOWN) { //当多个手指同时按下的情况,将最后一个按下的手指的坐标设置为起始坐标,所以只有最后一个手指的滑动事件被处理 - readView.setStartPoint(event.getX(event.pointerCount - 1), event.getY(event.pointerCount - 1), false) - } else if(event.actionMasked == MotionEvent.ACTION_POINTER_UP){ + readView.setStartPoint( + event.getX(event.pointerCount - 1), + event.getY(event.pointerCount - 1), + false + ) + } else if (event.actionMasked == MotionEvent.ACTION_POINTER_UP) { //当多个手指同时按下的情况,当抬起一个手指时,起始坐标恢复为第一次按下的手指的坐标 readView.setStartPoint(event.x, event.y, false) return @@ -47,9 +51,11 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) { abortAnim() mVelocity.clear() } + MotionEvent.ACTION_MOVE -> { onScroll(event) } + MotionEvent.ACTION_CANCEL, MotionEvent.ACTION_UP -> { onAnimStart(readView.defaultAnimationSpeed) } @@ -102,6 +108,7 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) { override fun nextPageByAnim(animationSpeed: Int) { if (readView.isAbortAnim) { + readView.isAbortAnim = false return } if (noAnim) { @@ -114,6 +121,7 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) { override fun prevPageByAnim(animationSpeed: Int) { if (readView.isAbortAnim) { + readView.isAbortAnim = false return } if (noAnim) {