首页 文章

应用程序的双击手势

提问于
浏览
0

我想实现一个特定于我的整个应用程序的手势 . 我尝试使用以下方法实现双击手势 .

MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener,
        GestureDetector.OnDoubleTapListener 

@Override
    public boolean onDoubleTapEvent(MotionEvent event) {

        return true;
    }

    @Override
    public boolean onSingleTapConfirmed(MotionEvent event) {

        return false;
    }

但我想在我的应用程序内的任何地方双击一个功能应该执行一些操作 . 每个视图的setOnClickListener都应该只检测单击,如果双击,它应该绕过Activity的OnDoubleTapListener . 我怎样才能做到这一点?

1 回答

  • 0

    在活动布局的根ViewGroup中,您可以实现以下方法:

    private static final long TIME_INITIAL = -1;
        private static final long TIME_DOUBLE_TAP = 250;
    
        private long lastTouchTime = TIME_INITIAL;
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            long thisTime = System.currentTimeMillis();
            if (thisTime - lastTouchTime <= TIME_DOUBLE_TAP) {
                 // do your magic here. I prefer call the listener
                lastTouchTime = TIME_INITIAL;
            } else {
                lastTouchTime = thisTime;
            }
        }
        return super.onInterceptTouchEvent(ev);
    }
    

相关问题