一.描述
Fragment+Viewpager实现项目首页架构时,可能有禁止左右滑动切换Fragment。下面看一下怎么实现。
二.代码实现
1.自定义ViewPager
package com.wjn.studydemo.fragmentviewpager.view;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class ViewPagerSlide extends ViewPager {
private boolean mIsCanScroll = true;
public ViewPagerSlide(@NonNull Context context) {
super(context);
}
public ViewPagerSlide(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
/**
* 设置其是否能滑动换页 外部调用
* isCanScroll false 不能滑动, true 可以滑动
*/
public void setViewPagerCanScroll(boolean isCanScroll) {
mIsCanScroll = isCanScroll;
}
/**
* 重写onInterceptTouchEvent方法
*/
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return mIsCanScroll && super.onInterceptTouchEvent(ev);
}
/**
* 重写onTouchEvent方法
*/
@Override
public boolean onTouchEvent(MotionEvent ev) {
return mIsCanScroll && super.onTouchEvent(ev);
}
}
2.外部调用
mViewPager.setViewPagerCanScroll(false);