看到禁止滑动的需求
立马想到的就是拦截事件
其次重写viewpager
拦截事件 一是事件onTouchEvent 二是拦截器onInterceptTouchEvent
使两者都返回false 达到拦截不响应滑动操作的目的
代码简洁 主要传递的是一种编程思想
public class NoScrollViewPager extends ViewPager {
public NoScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NoScrollViewPager(Context context) {
super(context);
}
//是否可以滑动
private boolean isCanScroll = true;
//----------禁止左右滑动------------------
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (isCanScroll) {
return super.onTouchEvent(ev);
} else {
return false;
}
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (isCanScroll) {
return super.onInterceptTouchEvent(arg0);
} else {
return false;
}
}
//-------------------------------------------
/**
* 设置 是否可以滑动
* @param isCanScroll
*/
public void setScrollble(boolean isCanScroll) {
this.isCanScroll = isCanScroll;
}
}
如果感觉文章可以学到东西,欢迎大佬关注小弟的公众号:Android 翻山之路