Long press in GestureDetector also fires on tap

前端 未结 3 2094
野趣味
野趣味 2020-12-17 17:24

I tried implementing code from this question: Detecting a long press with Android, but it always detects a long press, if even I just tap it. My code is as follows (I extend

3条回答
  •  别那么骄傲
    2020-12-17 18:07

    Solution above works (returning true in onDown()). I have also made it work by setting clickable and focusable property of View to true before setting GestureDetector.

    val gestureDetectorCompat = GestureDetectorCompat(context, object : GestureDetector.SimpleOnGestureListener() {
            override fun onSingleTapConfirmed(e: MotionEvent?): Boolean {
                // log "Single Tap Confirm"
                return true
            }
    
            override fun onLongPress(e: MotionEvent?) {
                // log "Long Press"
            }
        })
    image_stateful.isClickable = true
    image_stateful.isFocusable = true
    image_stateful.setOnTouchListener { _, event -> gestureDetectorCompat.onTouchEvent(event) }
    

提交回复
热议问题