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
})

如何解决此问题?

也尝试捕捉MotionEvent.ACTION_CANCEL动作,ACTION_UP意味着用户故意将手指从View中移除,在您的情况下手指仍然在那里(触摸屏幕(,但当离开Fragment/破坏View时,框架可能会关闭/取消所有MotionEvent

最新更新