如何在ViewPager中获取当前滑动方向

时间:2014-03-27 07:33:39

标签: android android-viewpager

我正在尝试使用ViewPager来显示不同的视图。

以下是我用于检查是否向左或向右滑动的代码

    myPager.setOnTouchListener(new ViewPager.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            float x = event.getX();

            switch(event.getAction()){
            case MotionEvent.ACTION_DOWN:
                mStartDragX = x;
                break;
            case MotionEvent.ACTION_MOVE:
                if (event.getX() > mStartDragX ) {
                    Log.i(TAG,"SWIPING RIGHT");
                } else if (event.getX() < mStartDragX) {
                    Log.i(TAG,"SWIPING LEFT");
                }
                break;
            }
            return false;
        }
    });

因此,当我开始从右向左或从右向左滑动时,它会向我显示正确的日志消息。

但如果我开始从右向左滑动并同时再次从左向右滑动,我如何识别当前是否向哪个方向滑动?

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:2)

然后做这样的事情......

case MotionEvent.ACTION_MOVE:
    if (event.getX() > mStartDragX) {
            Log.i(TAG, "SWIPING RIGHT");
            mStartDragX = event.getX();
        } else if (event.getX() < mStartDragX) {
            Log.i(TAG, "SWIPING LEFT");
            mStartDragX = event.getX();
        }

在这里,我将当前位置再次保存到旧位置,因此无论何时向后滑动都会给出正确的结果..