用Kotlin在Android中长按3根手指

问题描述

我正在为我的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指长按。