This commit is contained in:
Horis
2023-08-24 14:06:52 +08:00
parent fa03b08d3e
commit d7650c659e
@@ -34,10 +34,14 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) {
override fun onTouch(event: MotionEvent) { override fun onTouch(event: MotionEvent) {
//在多点触控时,事件不走ACTION_DOWN分支而产生的特殊事件处理 //在多点触控时,事件不走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) readView.setStartPoint(
} else if(event.actionMasked == MotionEvent.ACTION_POINTER_UP){ 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) readView.setStartPoint(event.x, event.y, false)
return return
@@ -47,9 +51,11 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) {
abortAnim() abortAnim()
mVelocity.clear() mVelocity.clear()
} }
MotionEvent.ACTION_MOVE -> { MotionEvent.ACTION_MOVE -> {
onScroll(event) onScroll(event)
} }
MotionEvent.ACTION_CANCEL, MotionEvent.ACTION_UP -> { MotionEvent.ACTION_CANCEL, MotionEvent.ACTION_UP -> {
onAnimStart(readView.defaultAnimationSpeed) onAnimStart(readView.defaultAnimationSpeed)
} }
@@ -102,6 +108,7 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) {
override fun nextPageByAnim(animationSpeed: Int) { override fun nextPageByAnim(animationSpeed: Int) {
if (readView.isAbortAnim) { if (readView.isAbortAnim) {
readView.isAbortAnim = false
return return
} }
if (noAnim) { if (noAnim) {
@@ -114,6 +121,7 @@ class ScrollPageDelegate(readView: ReadView) : PageDelegate(readView) {
override fun prevPageByAnim(animationSpeed: Int) { override fun prevPageByAnim(animationSpeed: Int) {
if (readView.isAbortAnim) { if (readView.isAbortAnim) {
readView.isAbortAnim = false
return return
} }
if (noAnim) { if (noAnim) {