Android 视图。OnLongClick()不';执行onTouch()操作时无法工作

Android 视图。OnLongClick()不';执行onTouch()操作时无法工作,android,kotlin,android-view,touch-event,Android,Kotlin,Android View,Touch Event,我试图在imageview保持一定时间(长时间单击)后启用拖放imageview 因此,拖放操作可以正常工作(在触摸动作向下/动作向上移动/动作向上),但它会阻止我检测视图。仅长按。当我移除onTouch时,成功检测到OnLongClick 如何让这两个侦听器同时工作 一旦创建: { editPhoto1.setOnTouchListener(this) editPhoto2.setOnTouchListener(this) editPhoto3.setOnTouchLi

我试图在imageview保持一定时间(长时间单击)后启用拖放imageview

因此,拖放操作可以正常工作(在触摸
动作向下
/
动作向上移动
/
动作向上
),但它会阻止我检测
视图。仅长按
。当我移除
onTouch
时,成功检测到
OnLongClick

如何让这两个侦听器同时工作

一旦创建:

{
    editPhoto1.setOnTouchListener(this)
    editPhoto2.setOnTouchListener(this)
    editPhoto3.setOnTouchListener(this)
    editPhoto1.isLongClickable = true
    editPhoto2.isLongClickable = true
    editPhoto3.isLongClickable = true
    editPhoto1.setOnLongClickListener(this)
    editPhoto2.setOnLongClickListener(this)
    editPhoto3.setOnLongClickListener(this)
}
onLongClick

override fun onLongClick(v: View?): Boolean {
    Log.d(TAG, "LongClick") // doesn't fire
    when (v){
        is CircleImageView -> {
            v.elevation = 20f
            v.borderColor = ContextCompat.getColor(this, R.color.colorPrimary)
            ready = true
        }
    }
    return true
}
onTouch

override fun onTouch(v: View?, event: MotionEvent?): Boolean {

    if (v is CircleImageView){
        when (event?.action){
            ACTION_DOWN -> {
                v.alpha = 0.7f
            }
            ACTION_MOVE -> {
                if (!ready) return false

                ...
            }
    return true
}

有什么想法吗?

因为onTouch已经在使用该事件。理论上,
如果您可以从touch返回false(长时间单击不使用),它应该可以工作,因为onTouch已经在使用该事件。理论上,
如果您可以通过触摸返回false(长时间点击不使用),它应该可以工作

Yep只需将
return true
更改为
return false
,在
onTouch()
中工作即可-谢谢!仅需确认:每次只能在视图上执行1个侦听器?是。。只有当您使用事件时,ontouch才有效。只需在
ontouch()
中将
return true
更改为
return false
,即可工作-谢谢!仅需确认:每次只能在视图上执行1个侦听器?是。。只有当您使用事件时,ontouch才起作用