Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Kotlin在android中长按3个手指_Android_Android Studio_Kotlin_Touch_Touch Event - Fatal编程技术网

使用Kotlin在android中长按3个手指

使用Kotlin在android中长按3个手指,android,android-studio,kotlin,touch,touch-event,Android,Android Studio,Kotlin,Touch,Touch Event,我正在为我的android应用程序实现功能。android应用程序的功能如下所述 在override fun onTouchEvent函数中,我有一个三指轻触。现在我想用三个手指长时间触摸。这是我无法得到的。请让我知道,如果3个手指敲击2或3秒(根据要求),我是否可以触发一些任务。下面是三指轻触的代码 override fun onTouchEvent(event: MotionEvent?): Boolean { return if (event != null) {

我正在为我的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我的任务正在执行三指轻触


在上面一行,我希望功能应该在长按后执行。任何帮助都将被标记为肯定回答。请帮助我解决此问题。

每当onTouch MotionEvent.ACTION\u中识别出3个指针时,您可以添加一个postDelayed为2到3秒的处理程序。
在MotionEvent.ACTION\u MOVE和MotionEvent.ACTION\u UP中,取消处理程序。如果您的hander在指定时间之前没有取消,则您可以将其视为3个手指长按。

我尝试过此操作,但当我释放屏幕或每当我拿起手指时,则不会触发任何事件。