Android 视图。OnLongClick()不';执行onTouch()操作时无法工作
我试图在imageview保持一定时间(长时间单击)后启用拖放imageview 因此,拖放操作可以正常工作(在触摸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
动作向下
/动作向上移动
/动作向上
),但它会阻止我检测视图。仅长按
。当我移除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才起作用