前言

在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 如何判断当前页面是从前一页还是后一页滑动过来相关推荐

  1. android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...

    本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里 ...

  2. js中实现页面跳转(返回前一页、后一页)

    一:JS 重载页面,本地刷新,返回上一页 代码如下: <a href="javascript:history.go(-1)">返回上一页</a>  < ...

  3. android设置错误页面,Android ViewPager设置当前项目/页面时抛出IndexOutOfBounds异常

    我有一个ViewPager有三个项目.我试图设置ViewPager查看最右边的页面(这将是第二个元素).这是返回IndexOutOfBounds异常,虽然我知道索引应该在边界.这是确切的堆栈: 02- ...

  4. Android开发-如何判断当前页面是否是桌面(Home)

    1Android桌面的简介: 在Android系统中,任何一个可见的界面都属于一个应用程序,桌面也是一个应用程序.例如,我们通常打开手机看到的第一个界面就属于桌面应用.Android系统会自带一个桌面 ...

  5. ViewPager中呈现前一页和后一页的内容

    目录 目录 前言 思路 关键函数 自定义PagerContainer 前言 今天需要实现如下图所示的布局效果: 第一反应是利用ViewDragHelper写一个自定义布局,然后实现拖拽效果.但是如果这 ...

  6. java跳转页面后再跳回前一个页面_js中实现页面跳转(返回前一页、后一页)

    一:JS 重载页面,本地刷新,返回上一页 代码如下: 返回上一页 重载页面,本地刷新 返回上一页重载页面,本地刷新 返回前二页并刷新的JS代码应该怎样写. 代码如下: history.go(-2); ...

  7. Android ViewPager实现多个图片水平滚动

    1.示意图                       2.实现分析 (1).xml配置 <!-- 配置container和pager的clipChildren=false, 并且指定margi ...

  8. (转)android UI进阶之用ViewPager实现欢迎引导页面

    ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包.大家搜下即可. ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示. ...

  9. Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能

    需要做一个仿淘宝客户端ViewPager滑动到最后一页,再拖动的时候跳到详情的功能,刚开始我也迷糊了,通过查阅相关资料发现有好多种实现方法,下面小编给大家分享实例代码,感兴趣的朋友一起看看吧 需要做一 ...

最新文章

  1. Express结合Webpack的全栈自动刷新
  2. autosar架构详细介绍_【技术】基于AUTOSAR的电机驱动系统分析
  3. 【Tensorflow】深度学习实战02——Tensorflow实现进阶的卷积网络(CIFAR-10)
  4. Java从FTP网盘读取文件
  5. js事件委托或事件代理
  6. 【Excel-2010】规范录入调查问卷
  7. 段错误 php,如何解决php扩展出现段错误的问题
  8. on where having总结
  9. vs使用安装devexpress教程
  10. ensp官方停止下载
  11. B-JUI表单验证规则总结
  12. 三种方法,让WPF项目生成单文件
  13. 2019徐州网络赛 K.Center (STL)
  14. js首次修改html无效,浅谈jQuery添加的HTML,JS失效的问题
  15. 2018年区块链红黑榜-千氪
  16. 大牛博士是如何进行文献检索和阅读的
  17. 错排公式的理解与推导(转载)
  18. HTML5新特性(基本)
  19. 如何下载福建省卫星地图高清版大图
  20. 第八章 DataStream API

热门文章

  1. JSP+Servlet实现BMI计算器
  2. 计算机毕业设计基于asp.net的旅游网站
  3. ssh远程访问控制(一)
  4. 克罗内克积Kronecker
  5. python陆股通_要闻:11月“陆股通”渠道外资净买入A股579亿元
  6. bootstrap实现导航栏的响应式布局,当在小屏幕、手机屏幕浏览时自动折叠隐藏
  7. unity游戏开发知识检测
  8. springboot自定义ClassLoader实现同一个jar支持多版本的使用场景【附源码】
  9. 没想到国美竟然用oracle的团队来搭建电商平台
  10. 王者荣耀4.4日服务器维护,王者荣耀:4.4全天停服更新,只为响应全国性“悼念活动”!...