Java Android:onTouchListener-当用户将触摸移出视图时取消触摸事件
我们都做过,当我们按住一个按钮时,我们不确定是否要点击,当我们按住屏幕时,我们移动手指,这样触摸事件就不会触发 我想用我的听众来模仿这种行为。我有一张卡片清单。每一张卡片都有一个onTouchListener,可以触发触摸事件的意图。如果用户在按住屏幕的同时将手指从卡上移开,我希望确保不会触发意图 有什么想法吗?使用此代码Java Android:onTouchListener-当用户将触摸移出视图时取消触摸事件,java,android,ontouchlistener,Java,Android,Ontouchlistener,我们都做过,当我们按住一个按钮时,我们不确定是否要点击,当我们按住屏幕时,我们移动手指,这样触摸事件就不会触发 我想用我的听众来模仿这种行为。我有一张卡片清单。每一张卡片都有一个onTouchListener,可以触发触摸事件的意图。如果用户在按住屏幕的同时将手指从卡上移开,我希望确保不会触发意图 有什么想法吗?使用此代码 @Override public boolean dispatchTouchEvent(MotionEvent event) { switch (event.getA
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_UP:
if (event.getX() < width && event.getY() < height) {
//finger is on the card and fire intent
}
break;
}
return true;
}
谢谢你的回复,看起来很有希望。至于“宽度”和“高度”,它们是内置在onTouchListener中的,还是我必须自己定义它们?不,你可以通过view.getWidth/view.getHeight@joshbeckwith获取这些值,所以我尝试了一下,它按预期工作。然而,当我对你的答案做更多的研究时,我发现了一个更简单的解决方案。实际上有一个MotionEvent.ACTION\u在外面,它做完全相同的事情。我只是想让你知道。编辑:我已从MotionEvent.ACTION\u OUTSIDE切换到MotionEvent.ACTION\u CANCEL,以便能够正确地重置视图颜色属性。它们的工作原理非常相似。