天天看点

禁止ViewPager左右滑动

最近在做一个二手校园交易平台的毕设,想达到仿咸鱼的tab效果。目前效果:

禁止ViewPager左右滑动

但是咸鱼的是不可以左右滑动的,怎么禁止ViewPager左右滑动呢?

建一个ViewPager的子类,重写它的 onInterceptTouchEvent 和 onTouchEvent方法:

package com.up.uwei.shshop.view;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class NoSwipeViewPager extends ViewPager {
    private boolean canSwipe = true;
    public NoSwipeViewPager(Context context, AttributeSet attributeSet){
        super(context, attributeSet);
    }
    public void setCanSwipe(boolean canSwipe)
    {
        this.canSwipe = canSwipe;
    }
    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        return canSwipe && super.onTouchEvent(ev);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return canSwipe && super.onInterceptTouchEvent(ev);
    }
}
           

接着在布局里使用NoSwipeViewPager:

禁止ViewPager左右滑动

然后在Activity里通过findById拿到我们的NoSwipeViewPAger,接着调用:

禁止ViewPager左右滑动
禁止ViewPager左右滑动

然后运行结果:

禁止ViewPager左右滑动

ok,已经不能左右滑动,只能通过替补tab来控制,

但是有一个问题,每次切换fragment都有一个动画,比如从 “导航” 到 “我的”,中间有动画,不想要怎么办?

答:

mViewPager.setCurrentItem(3, false);
           
禁止ViewPager左右滑动

最后运行结果:

禁止ViewPager左右滑动

嘿嘿,over....

继续阅读