android - 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
,在您的情况下手指仍然存在(触摸屏),但框架可能会MotionEvent
在离开Fragment
/销毁时关闭/取消所有 sView
推荐阅读
- excel - 无法使用 vba 从字符串中提取金额
- javascript - 在 Phaser js 3 上获取输入持续时间
- linux - 更改值或创建它(如果它不存在)
- php - 如何在没有 html 的情况下制作 Json Response 有效负载
标签
- php - laravel 5.6中的SQL完整性约束错误
- webpack - webpack 4 - 在生产模式下找不到 /package.json
- bash - 如何将 app 变量添加到 mac 上的 .bash_profile?
- vue.js - Vuejs - 如果 textarea 不为空,则更改布尔值
- reactjs - React Native - 多个导航器(同一页面上的抽屉和底部标签)?
- javascript - React 元素应该包含所需的属性。为什么想要?