用一根手指按住按钮,然后用另一根手指导航到另一个片段时,在下一个片段中抬起手指后,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