博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最靠谱的禁止ViewPager滑动方法
阅读量:2389 次
发布时间:2019-05-10

本文共 783 字,大约阅读时间需要 2 分钟。

最近做项目要求某种情况下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://waaab.baihongyu.com/

你可能感兴趣的文章
芯片测试...
查看>>
了解搜索引擎技术
查看>>
使用朴素贝叶斯算法,通过用户安装的APP列表来推测用户的性别
查看>>
DELL Inspiron One 2020 安装win7问题
查看>>
sata光驱安装openSUSE 12.3
查看>>
关于虚拟目录继承根Web.Config的问题解决办法
查看>>
java基础| 多线程基础三:CAS原理和原子操作
查看>>
java基础| 多线程基础四:显示锁详解
查看>>
java基础| 多线程基础五:AQS详解
查看>>
java基础| 多线程基础六:Condition接口分析和ThreadLocal类解析
查看>>
java基础| 多线程基础七:JUC工具包中的工具类
查看>>
java基础| 多线程基础八:线程池及使用
查看>>
Centos7| 远程连接vncserver时输入账户密码后闪退
查看>>
java源码| HashMap源码分析
查看>>
JVM基础一| java se体系结构及jvm概述
查看>>
前端| js动态修改video标签视频不刷新的问题
查看>>
JVM基础二| 深入理解JVM内存对象
查看>>
IDEA| centos Unable to open debugger port(127.0.0.1:60157) socket closed
查看>>
JVM基础三| 深入理解垃圾回收及算法
查看>>
JVM基础四| 深入理解JVM执行子系统
查看>>