java - 如何检测 MotionEvent.ACTION_MOVE 何时完成

标签 java android motion-detection

当用户停止在特定 View 中移动时,我需要在我的应用程序中进行检测。我正在我的应用程序中创建类似于标记文本的东西,它可以在用户触摸 View 并在其中移动时进行交互。我需要在用户抬起手指后开始 ScrollView 。正如我注意到的那样,如果我将手指移过 View 几秒钟,当我抬起手指时,不会调用 MotionEvent.ACTION_UP。我捕获的最后一个事件是 ACTION_MOVE 。那么我如何检测用户在 View 中移动几秒钟后何时抬起手指呢?是否有某种功能可以检测到这一点?

这是我正在使用的代码:

txt.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, final MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                Log.e("","event down : "+event.getAction());
                handler.removeCallbacks(runnable);
                break;
            case MotionEvent.ACTION_UP:
                Log.e("","event up : "+event.getAction());
                if(myTimer!=null){
                    myTimer.cancel();
                }
                break;
            case MotionEvent.ACTION_MOVE:
                Log.d("","move");
                // handler.removeCallbacks(runnable);
                checkX();
                break;
        }
        return true;
    }
});

提前致谢!

最佳答案

我认为该事件可能会在手势完成之前发送一个ACTION_CANCEL Action 。或者,如果它拖到您正在检查的 View 之外,它可能是 ACTION_OUTSIDE

确认/调试的最佳方法是放入 Log.d() 语句,打印 MotionEvent.getActionMasked() 值,然后检查查看在您的 ACTION_MOVE 事件结束后调用了哪些操作。

关于java - 如何检测 MotionEvent.ACTION_MOVE 何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11257928/

相关文章:

java - 无法弄清楚为什么 SQL 语句不起作用

android - 基于卡片的游戏的 Google Play 服务邀请流程

Android:使用加速度计创建一个简单的 maraca 应用程序

java - 好像我的小 android 应用程序正在运行多个实例

java - 通过xpath获取当前节点值

Java xml-java 绑定(bind) @XmlType.propOrder

java - 检测文件是否是 Java 8 中的符号链接(symbolic link)

java - 更改第三方JAR的安全权限?

android - 均匀缩放线性布局中的图像

python - “good_new = p1[st==1]”在OpenCV中的Lucas-Kanade Optical Flow代码中意味着什么