2012-03-19 40 views
3

为了有列表重新排序功能我转向this implementationAndroid ListView onTouchEvent不给ACTION_DOWN

我的问题是,当我尝试在ListView中拖动一个项目时,我没有收到ACTION_DOWN事件。相反,对于一个拖尾行为,我按此顺序得到2个ACTION_MOVE事件(action = 0x00000002)和一个ACTION_UP事件(action = 0x00000001)。

我看过类似的问题,但似乎每个人都有相反的问题,只有ACTION_DOWN事件。 任何人都可以想到为什么会发生这种情况?

感谢, 约尔

+0

我们不能没有看到一些代码帮你 – slayton 2012-03-19 17:07:59

回答

2

事实证明,我需要添加这一小块代码:

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    return super.onInterceptTouchEvent(ev); 
} 

现在我得到的ACTION_DOWN事件中的onTouchEvent功能,这一切工作正常。

+0

感谢您发布您的解决方案。请将您的答案标记为正确的答案。 – Joe 2012-04-04 06:44:10

+0

小心..多点触摸可能会导致此代码崩溃。 – neteinstein 2012-04-08 15:08:43

+0

拯救我的世界人,欢呼! – Nativ 2013-12-05 01:06:55

2

我用的是相同的代码。

我的问题也是考研,使用该事件,我没有设法找到什么来着......但我设法使用onInterceptTouchEvent返回在我需要的的onTouchEvent事件真正解决这个问题。

问题解决了:-)

+0

非常感谢你的回复!事实上这有助于。我使这两个事件都能调用相同的函数,并且我看到了一些操作。 – yoel 2012-04-03 14:17:31

+0

没有问题。希望它能解决你的问题。 – neteinstein 2012-04-03 14:20:25

+0

我重写onInterceptTouchEvent并筛选我感兴趣的MotionEvent操作(ACTION_DOWN和ACTION_MOVE)。在使用这些动作的方法中,它调用onTouchEvent并返回false。如果我不过滤动作事件,那么它会调用super.onInterceptTouchEvent(ev)方法。 – 2015-04-21 20:18:03