diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt index f115eabce..3009af02e 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt @@ -62,8 +62,9 @@ class PageView(context: Context, attrs: AttributeSet) : @SuppressLint("ClickableViewAccessibility") override fun onTouchEvent(event: MotionEvent): Boolean { + pageDelegate?.onTouch(event) callBack.screenOffTimerStart() - return pageDelegate?.onTouch(event) ?: super.onTouchEvent(event) + return true } fun onDestroy() { diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt index 0e7c10d0d..1f6ab9fa9 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/delegate/PageDelegate.kt @@ -204,8 +204,8 @@ abstract class PageDelegate(protected val pageView: PageView) : * 触摸事件处理 */ @CallSuper - open fun onTouch(event: MotionEvent): Boolean { - if (isStarted) return false + open fun onTouch(event: MotionEvent) { + if (isStarted) return if (!detector.onTouchEvent(event)) { //GestureDetector.onFling小幅移动不会触发,所以要自己判断 if (event.action == MotionEvent.ACTION_UP && isMoved) { @@ -215,7 +215,6 @@ abstract class PageDelegate(protected val pageView: PageView) : if (!noNext) onAnimStart() } } - return true } /** 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 3a25854d5..342e31cc6 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 @@ -26,9 +26,11 @@ class ScrollPageDelegate(pageView: PageView) : PageDelegate(pageView) { curPage.onScroll(touchY - lastY) } - override fun onTouch(event: MotionEvent): Boolean { + override fun onTouch(event: MotionEvent) { when (event.action) { MotionEvent.ACTION_DOWN -> { + lastY = event.y + setTouchPoint(event.x, event.y) abort() mVelocity.clear() } @@ -44,7 +46,7 @@ class ScrollPageDelegate(pageView: PageView) : PageDelegate(pageView) { } } } - return super.onTouch(event) + super.onTouch(event) } override fun onDestroy() {