重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Android编程常常使用ViewPager结合Fragment实现可以左右滑动切换的页面,但有时会遇到这样的需求,让ViewPager根据特定条件来控制其是否滑动。
创新互联长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为乐安企业提供专业的成都做网站、成都网站制作,乐安网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。实现思路:重写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; } }