文档章节

最靠谱的禁止ViewPager滑动方法

JayPark不作死
 JayPark不作死
发布于 2014/10/13 11:07
字数 207
阅读 28453
收藏 2
点赞 1
评论 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,来切换页面。

© 著作权归作者所有

共有 人打赏支持
JayPark不作死
粉丝 15
博文 51
码字总数 13622
作品 0
苏州
程序员
加载中

评论(2)

嘘不要声张
嘘不要声张
可以解决滑动问题,不错
Common1140
Common1140
使用setOnTouchListener时,可以禁止左右滑动,但是效果不太好,左右两边会出现一点上一个页面的!
打造万能的BannerView(ViewPager)无限轮播图

为什么写这篇文章,因为在网上看到的绝大多数BannerView实现了右无限轮播图,甚至没有实现无限轮播图,说成是无限轮播图,实现了左右无限轮播图的,并没有做性能上的优化。 先看张效果图 工程...

Steven_520 ⋅ 05/11 ⋅ 0

Android NestedScrollView/ScrollView包裹ViewPager自适应高度

Android NestedScrollView/ScrollView包裹ViewPager自适应高度 当Android的NestedScrollView/ScrollView这类滚动View包裹ViewPager时候,ViewPager中的Fragment包含的又是一系列高度值不固定...

zhangphil ⋅ 05/12 ⋅ 0

你真的会用Fragment吗?Fragment复用的那些事儿

作者: @怪盗kidou 如需转载不得删除本文中的任何内容(含本段) 如果博客中有不恰当之处欢迎在原文中留言交流 https://www.jianshu.com/p/31f013df7580 大家好,好像距离上次发布博客好像又...

怪盗kidou ⋅ 05/24 ⋅ 0

Android Fragment 监听hide和show

setUserVisibleHint方法耳熟能详,可是仅仅适用于ViewPager,他是ViewPager中手动调用的,但是正常情况下我们该怎么监听呢? 我们也手动调用不就好了 上addFragment代码 private Fragment m...

qq_36523667 ⋅ 05/10 ⋅ 0

从零开发Android视频点播APP

第1章 课程介绍,技术选型 本章将向大家介绍本课程你们学到什么,项目功能模块有哪些,并对技术进行分解,方便大家有针对性的准备和学习,同时会将项目结构设计好,为后面项目的开发做好基础准...

13269051240 ⋅ 05/21 ⋅ 0

从零开发Android视频点播APP视频课程 点播APP实战教程

第1章 课程介绍,技术选型 本章将向大家介绍本课程你们学到什么,项目功能模块有哪些,并对技术进行分解,方便大家有针对性的准备和学习,同时会将项目结构设计好,为后面项目的开发做好基础准...

17087075817 ⋅ 05/14 ⋅ 0

TabLayout切换标题栏被顶上去的处理

一般都是ScrollView滑动然后包裹TabLayout+ViewPager+Fragment 在Fragment内包含 WebView、ListView、或者GridView之类的 1、设置ScrollView获取焦点: mVideoScrollview.setFocusable(true...

王先森oO ⋅ 05/11 ⋅ 0

想把GridView添加到ViewPager里面。报空指针异常

用TabLayout和ViewPager关联后,想把GridView添加到ViewPager里面。报空指针异常。不知道哪里写错了 04-12 08:39:37.363 25278-25278/? E/AndroidRuntime: FATAL EXCEPTION: main Process: ...

csl232 ⋅ 04/13 ⋅ 0

图片预览组件PhotoView

图片预览组件PhotoView PhotoView是一款图片预览组件,广泛应用于大图的查看。该组件支持图片手势缩放、旋转等功能。它可以很好的和ViewPager、Picasso等组件结合,实现各种复杂的功能。...

大学霸 ⋅ 05/29 ⋅ 0

轻轻松松实现RecyclerView对齐效果

在开发过程中,对齐效果是一个很常见的功能:比如我们使用ViewPager,或者是使用画廊效果的FancyCoverFlow,都无一例外的要求某一个Item居中对齐。比如看看Google Play,它实现了滑动停止后I...

r17171709 ⋅ 05/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部