Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:onTouchListener-当用户将触摸移出视图时取消触摸事件_Java_Android_Ontouchlistener - Fatal编程技术网

Java Android:onTouchListener-当用户将触摸移出视图时取消触摸事件

Java Android:onTouchListener-当用户将触摸移出视图时取消触摸事件,java,android,ontouchlistener,Java,Android,Ontouchlistener,我们都做过,当我们按住一个按钮时,我们不确定是否要点击,当我们按住屏幕时,我们移动手指,这样触摸事件就不会触发 我想用我的听众来模仿这种行为。我有一张卡片清单。每一张卡片都有一个onTouchListener,可以触发触摸事件的意图。如果用户在按住屏幕的同时将手指从卡上移开,我希望确保不会触发意图 有什么想法吗?使用此代码 @Override public boolean dispatchTouchEvent(MotionEvent event) { switch (event.getA

我们都做过,当我们按住一个按钮时,我们不确定是否要点击,当我们按住屏幕时,我们移动手指,这样触摸事件就不会触发

我想用我的听众来模仿这种行为。我有一张卡片清单。每一张卡片都有一个onTouchListener,可以触发触摸事件的意图。如果用户在按住屏幕的同时将手指从卡上移开,我希望确保不会触发意图

有什么想法吗?

使用此代码

@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,以便能够正确地重置视图颜色属性。它们的工作原理非常相似。