如何检测MotionEvent.ACTION_MOVE何时完成

And*_*oid 7 java android motion-detection

当用户停止在特定视图中移动时,我需要在我的应用程序中进行检测.我在我的应用程序中创建类似于marque文本的东西,当用户触摸视图并在其上移动时,它可以进行交互.我需要在用户抬起手指后开始滚动视图.正如我注意到,如果我将手指移过视图几秒钟,当我抬起手指时,我的手指MotionEvent.ACTION_UP没有被调用.我捕获的最后一个事件是ACTION_MOVE.那么我怎样才能检测用户在几秒钟内移动视线后何时抬起手指?有某种功能可以检测出来吗?

这是我正在使用的代码:

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;
    }
});
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Cre*_*oat 2

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

确认/调试这一点的最佳方法是放入一条Log.d()语句,打印该MotionEvent.getActionMasked()值,并检查ACTION_MOVE事件结束后正在调用哪些操作。