最靠谱的禁止ViewPager滑动方法

来源:互联网 发布:淘宝生活研究所是什么 编辑:程序博客网 时间:2024/06/05 11:52
最近做项目要求某种情况下ViewPager不能滑动,在网上找了一圈。有说重写Ontouch的,各种。都试了试,基本都不可用。 

自己看ViewPager源码,知道VIewPager移动全部都调用了scrollTo方法,这个是View的方法,那么我们只需要重写这个方法就可以禁止ViewPager滑动 

Java代码
  1. public class CustomViewPager extends ViewPager {  
  2.   
  3.     private boolean isCanScroll = true;  
  4.   
  5.     public CustomViewPager(Context context) {  
  6.         super(context);  
  7.     }  
  8.   
  9.     public CustomViewPager(Context context, AttributeSet attrs) {  
  10.         super(context, attrs);  
  11.     }  
  12.   
  13.     public void setScanScroll(boolean isCanScroll){  
  14.         this.isCanScroll = isCanScroll;  
  15.     }  
  16.   
  17.   
  18.     @Override  
  19.     public void scrollTo(int x, int y){  
  20.         if (isCanScroll){  
  21.             super.scrollTo(x, y);  
  22.         }  
  23.     }  


此时,ViewPager.setCurretItem方法也会失效,想通过点击Tab button 切换page也无法实现。

二、setOnTouchListener

ViewPager.setOnTouchListener(new View.OnTouchListener(){

        on touch ( xx ){

                return true;

        }

});

这种方式可以实现只禁止滑动翻页,可以通过setCurrentItem,来切换页面。



原文地址:http://www.bubuko.com/infodetail-762851.html
0 0
原创粉丝点击