问题描述
我正在为我的android应用程序实现功能。并在下面介绍了android应用程序的功能。
在override fun onTouchEvent
函数中,我有一个三指水龙头。现在,我要长按三个手指。我无法获得它。请让我知道,如果3个手指轻按2或3秒(根据要求),我可以触发一些任务吗?下面是三指点击的代码。
override fun onTouchEvent(event: MotionEvent?): Boolean {
return if (event != null) {
if (event.pointerCount > 1) {
isDoubleFinger = true
if (event.pointerCount == 3 && event.actionMasked == MotionEvent.ACTION_POINTER_DOWN) {
if (toggleSwitch.isChecked) {
//Todo MY TASK IS EXECUTING FOR THREE FINGER TAP
} else {
setSnackBar(IConstant.MESSAGE.WARNING_PLAY_SWITCH)
}
}
}
true
} else {
super.onTouchEvent(event)
}
}
Todo MY TASK IS EXECUTING FOR THREE FINGER TAP
在上面的行中,我希望功能应在长按后执行。任何帮助将被标记为肯定答案。请帮助我摆脱这个问题。
解决方法
只要在onTouch MotionEvent.ACTION_DOWN中标识了3个指针,就可以添加一个具有postDelayed 2到3秒的Handler。 在MotionEvent.ACTION_MOVE和MotionEvent.ACTION_UP中取消处理程序。如果您的处理程序直到指定的时间后才取消,则可以将其视为3指长按。