#android #android-studio #kotlin #touch #touch-event
#Android #android-студия #kotlin #коснитесь #касание-событие
Вопрос:
Я внедряю функциональность для своего приложения для 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 amp;amp; 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
В приведенной выше строке я хочу, чтобы функциональность выполнялась после длительного нажатия. Любая помощь будет отмечена как положительный ответ. Пожалуйста, помогите мне избавиться от этой проблемы.
Ответ №1:
Вы можете добавлять обработчик с задержкой от 2 до 3 секунд всякий раз, когда в onTouch MotionEvent идентифицируются 3 указателя.ACTION_DOWN. В MotionEvent.ACTION_MOVE и MotionEvent.ACTION_UP отменяет обработчик. Если ваш манипулятор не отменяется до указанного вами времени, вы можете рассматривать его как длительное нажатие 3 пальцами.
Комментарии:
1. Я пробовал это, но когда я отпускаю экран или всякий раз, когда я поднимаю палец, событие не запускается.