Android编程常常使用ViewPager结合Fragment实现可以左右滑动切换的页面,但有时会遇到这样的需求,让ViewPager根据特定条件来控制其是否滑动。

成都创新互联公司服务项目包括江西网站建设、江西网站制作、江西网页制作以及江西网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,江西网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到江西省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
实现思路:重写ViewPager,覆盖 onTouchEvent 和 onInterceptTouchEvent 方法,使其返回false,截取ViewPager的事件响应,这样就等于禁止了ViewPager上的滑动事件。
public class MyViewPager extends ViewPager {
private boolean scrollble=true;
public MyViewPager(Context context){
super(context);
}
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (!scrollble) {
return true;
}
return super.onTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (scrollble == false) {
return false;
} else {
return super.onInterceptTouchEvent(ev);
}
}
public boolean isScrollble() {
return scrollble;
}
public void setScrollble(boolean scrollble) {
this.scrollble = scrollble;
}
}
在java代码中初始化MyViewPager后,调用setScrollble( )方法,则可控制ViewPager是否滑动,false为不可滑动,true为可滑动。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。