Android ViewPager 如何判断当前页面是从前一页还是后一页滑动过来
前言
在Android开发中,ViewPager是最常用的控件之一。它提供的左右滑动的功能,可以让我们轻松实现图片查看器、Tab页切换等功能。今天要讲的是使用过程中的一个小收获。当我们在左右滑动时,有时候需要知道当前页面是从前一页滑过来还是从后一页滑过来,因为Android SDK并没有提供这样的API,因此需要我们写一点代码来实现,当然这也是依靠Android提供的API来间接实现的。
详解
我们在处理ViewPager的时候经常要使用到它的OnPageChangeListener,OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChanged,onPageScrolled
,onPageSelected)。
1.onPageScrollStateChanged(int arg0) ,此方法是在状态改变的时候调用,其中arg0这个参数有三种状态(0,1,2)。arg0 ==1表示正在滑动,arg0==2表示滑动完毕了,arg0==0b表示。当页面开始滑动的时候,三种状态的变化顺序为(1,2,0)。
2.onPageScrolled(int arg0,float arg1,int arg2)
,当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法回一直得到调用。其中三个参数的含义分别为:
arg0 :当前页面,即你点击滑动的页面
arg1:当前页面偏移的百分比
arg2:当前页面偏移的像素位置 .
3.onPageSelected(int arg0)
:此方法是页面跳转完后得到调用,arg0是你当前选中的页面的Position(位置编号)。
要实现之前说的功能,我们可以利用第二个方法onPageScrolled的第三个参数,当这个参数比前一刻的值大时,说明是在向右滑动,反之则是在向左滑动。
代码
public void onPageScrolled(int index, float arg1, int arg2) {if (lastValue > arg2) {moveRight = true;moveLeft = false;} else if (lastValue < arg2) {moveRight = false;moveLeft = true;}lastValue = arg2;}
private boolean isMovedFromPrevious() {return moveLeft;}private boolean isMovedFromNext() {return moveRight;}
Android ViewPager 如何判断当前页面是从前一页还是后一页滑动过来相关推荐
- android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...
本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里 ...
- js中实现页面跳转(返回前一页、后一页)
一:JS 重载页面,本地刷新,返回上一页 代码如下: <a href="javascript:history.go(-1)">返回上一页</a> < ...
- android设置错误页面,Android ViewPager设置当前项目/页面时抛出IndexOutOfBounds异常
我有一个ViewPager有三个项目.我试图设置ViewPager查看最右边的页面(这将是第二个元素).这是返回IndexOutOfBounds异常,虽然我知道索引应该在边界.这是确切的堆栈: 02- ...
- Android开发-如何判断当前页面是否是桌面(Home)
1Android桌面的简介: 在Android系统中,任何一个可见的界面都属于一个应用程序,桌面也是一个应用程序.例如,我们通常打开手机看到的第一个界面就属于桌面应用.Android系统会自带一个桌面 ...
- ViewPager中呈现前一页和后一页的内容
目录 目录 前言 思路 关键函数 自定义PagerContainer 前言 今天需要实现如下图所示的布局效果: 第一反应是利用ViewDragHelper写一个自定义布局,然后实现拖拽效果.但是如果这 ...
- java跳转页面后再跳回前一个页面_js中实现页面跳转(返回前一页、后一页)
一:JS 重载页面,本地刷新,返回上一页 代码如下: 返回上一页 重载页面,本地刷新 返回上一页重载页面,本地刷新 返回前二页并刷新的JS代码应该怎样写. 代码如下: history.go(-2); ...
- Android ViewPager实现多个图片水平滚动
1.示意图 2.实现分析 (1).xml配置 <!-- 配置container和pager的clipChildren=false, 并且指定margi ...
- (转)android UI进阶之用ViewPager实现欢迎引导页面
ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包.大家搜下即可. ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示. ...
- Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能
需要做一个仿淘宝客户端ViewPager滑动到最后一页,再拖动的时候跳到详情的功能,刚开始我也迷糊了,通过查阅相关资料发现有好多种实现方法,下面小编给大家分享实例代码,感兴趣的朋友一起看看吧 需要做一 ...
最新文章
- Express结合Webpack的全栈自动刷新
- autosar架构详细介绍_【技术】基于AUTOSAR的电机驱动系统分析
- 【Tensorflow】深度学习实战02——Tensorflow实现进阶的卷积网络(CIFAR-10)
- Java从FTP网盘读取文件
- js事件委托或事件代理
- 【Excel-2010】规范录入调查问卷
- 段错误 php,如何解决php扩展出现段错误的问题
- on where having总结
- vs使用安装devexpress教程
- ensp官方停止下载
- B-JUI表单验证规则总结
- 三种方法,让WPF项目生成单文件
- 2019徐州网络赛 K.Center (STL)
- js首次修改html无效,浅谈jQuery添加的HTML,JS失效的问题
- 2018年区块链红黑榜-千氪
- 大牛博士是如何进行文献检索和阅读的
- 错排公式的理解与推导(转载)
- HTML5新特性(基本)
- 如何下载福建省卫星地图高清版大图
- 第八章 DataStream API
热门文章
- JSP+Servlet实现BMI计算器
- 计算机毕业设计基于asp.net的旅游网站
- ssh远程访问控制(一)
- 克罗内克积Kronecker
- python陆股通_要闻:11月“陆股通”渠道外资净买入A股579亿元
- bootstrap实现导航栏的响应式布局,当在小屏幕、手机屏幕浏览时自动折叠隐藏
- unity游戏开发知识检测
- springboot自定义ClassLoader实现同一个jar支持多版本的使用场景【附源码】
- 没想到国美竟然用oracle的团队来搭建电商平台
- 王者荣耀4.4日服务器维护,王者荣耀:4.4全天停服更新,只为响应全国性“悼念活动”!...