I am listening for a View\'s long click events via setOnLongClickListener(). Can I change the long click delay / duration?
I defined an extension function in Kotlin inspired by @Galoway answer:
fun View.setOnVeryLongClickListener(listener: () -> Unit) {
setOnTouchListener(object : View.OnTouchListener {
private val longClickDuration = 2000L
private val handler = Handler()
override fun onTouch(v: View?, event: MotionEvent?): Boolean {
if (event?.action == MotionEvent.ACTION_DOWN) {
handler.postDelayed({ listener.invoke() }, longClickDuration)
} else if (event?.action == MotionEvent.ACTION_UP) {
handler.removeCallbacksAndMessages(null)
}
return true
}
})
}
Use it like this:
button.setOnVeryLongClickListener {
// Do something here
}