我创建了视图,您可以在其中添加其他视图。
可以拖动此父视图(dispatchTouchEvent)。
但是当我拖动父视图时,其中包含的视图称为onLongClick。
如果您阻止ACTION_DOWN,则该屏幕不可点击,我需要它是可点击的。
如何解决?
我在单独的库中创建了View,所以旧的解决方案将无济于事。
答案 0 :(得分:0)
只需创建一个布尔标志isDragging
,并在触发ACTION_MOVE时将标志设置为true
,并在onLongClick
方法中检查isDragging是否为false,则仅允许longPress.And ACTION_UP重置标志,即isDragging = false
注意:仅当触摸不松懈时才设置isDragging标志。检查草率的触摸是否具有一些阈值diffX和diffY值。如果move事件高于那些阈值,则仅设置
isDragging
override fun onLongClick(v: View): Boolean {
if(v is YourView){
if(!v.isDragging){
val message = messages[adapterPosition]
listener?.onLongClickMessage(message)
setColorMessage(message, background)
return true
}
}
return false
}
答案 1 :(得分:0)
我终于找到了解决这个问题的方法。 view.cancelPendingInputEvents();