длительное нажатие 3 пальцами в Android с Kotlin

#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. Я пробовал это, но когда я отпускаю экран или всякий раз, когда я поднимаю палец, событие не запускается.