在我的Android应用程序中,我使用OnTouchListener
创建了一个可拖动的视图。这仍然很好。侦听器设置为ListView
。现在的问题是如何一次设置onTouch
和setOnItem(Long)ClickListener(s)
。
我已经尝试了什么:
设置两个侦听器,onTouch事件返回false。当我拖动ListView时,OnItemLongClickListener
事件被触发。 - >可以拖动视图,但会出现一个对话框。
设置两个侦听器,onTouch事件返回true。 - >项目点击监听器永远不会被解雇
设置两个侦听器,onTouch事件返回false,但是当拖动手势的X差异足够大(在startX和nowX之间)时,它返回true。所以我的想法
是:点击返回false。但是当拖动视图时它返回true,因此不会触发侦听器。 - >在每次拖动时,OnLongItemClick
事件都会被触发 - 即使是我
将手指从触摸屏上抬起。显然在OnLongItemClick
时间内检测到return false
事件,并且当OnTouch
侦听器返回true时它仍然运行 - 并且没有中断。
我怎么能解决这个问题?我的想法是在识别拖动时打破OnLongItemClick
事件。但我还没有找到办法如何做到这一点。
如果您需要更复杂的#3解释,请发表评论。
非常感谢。