Android SimpleOnPageChangeListener - 确定滑动方向

mig*_*ele 7 android direction swipe android-viewpager

我有一个扩展SimpleOnPageChangeListener的类,在我的onPageScrollStateChanged方法中,我希望能够确定用户是通过ViewPager向前还是向后滑动.即它们是从左到右还是从右到左滑动.

我已经做了很多谷歌搜索,但我找不到任何关于它.我原以为onPageScrollStateChanged方法会提供一个参数,说明滑动的方向,但不是.

    @Override
    public void onPageScrollStateChanged(int state) {

        // Determine whether the user is swiping forwards or backwards through the ViewPager
    }
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法?

干杯迈克

sco*_*yab 3

使用 ViewPager.SimpleOnPageChangeListener 并保留一个带有当前选项卡位置的实例变量,这样您就可以计算出它被刷卡的方式。

private final ViewPager.SimpleOnPageChangeListener mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {

        @Override
        public void onPageSelected(final int position) {
            onTabChanged(mPager.getAdapter(), mCurrentTabPosition, position);
            mCurrentTabPosition = position;
        }
    };

 protected void onTabChanged(final PagerAdapter adapter, final int oldPosition, final int newPosition) {
        //Calc if swipe was left to right, or right to left
         if (oldPosition>newPosition){
           // left to right
         }
         else{
           //right to left 
         }

    }
Run Code Online (Sandbox Code Playgroud)