首页 > 解决方案 > OnTouchListener 在导航到另一个片段时不记录 ACTION_UP

问题描述

在用一根手指按住按钮并用另一根手指导航到另一个片段时,MotionEvent.ACTION_UP 在下一个片段中抬起手指后不会触发,或者根本不会触发。

view.findViewById<Button>(R.id.button).setOnTouchListener(OnTouchListener { _, event ->
    when (event.action) {
        MotionEvent.ACTION_DOWN -> {             // PRESSED
            doAction(true)
            return@OnTouchListener true
        }
        MotionEvent.ACTION_UP -> {                // RELEASED
            doAction(false)
            return@OnTouchListener true
        }
    }
    false
})

我该如何解决这个问题?

标签: androidkotlinontouchlistener

解决方案


也尝试捕捉MotionEvent.ACTION_CANCEL动作,ACTION_UP这意味着用户故意从手指上移开手指View,在您的情况下手指仍然存在(触摸屏),但框架可能会MotionEvent在离开Fragment/销毁时关闭/取消所有 sView


推荐阅读