在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;    }

更多相关文章

  1. Android(安卓)屏蔽Power键 Home键
  2. Android(安卓)获取所有联系人(两种方法)
  3. Android中广告渠道SDK接入方法
  4. Android(安卓)Viewpage禁止滑动屏幕
  5. Android打造通用的下拉刷新组件
  6. 解决:eclipse导入android时工程下没有R文件的问题,以及style.xml文
  7. Android中app卡顿原因分析(ios顺滑)
  8. android页面布局时定义控件ID时@id/XX和@+id/xx 有什么区别?
  9. Android(安卓)OOM介绍及分析方法

随机推荐

  1. Android AESUtils 工具类与调用方法
  2. XE7 Android 中使用 MessageDlg 范例
  3. Android Root SuperUser su相关资源
  4. ubuntu下Android源码下载编译运行,单独编
  5. 获得root权限
  6. android 创建快捷图标demo
  7. Android学习五 网络编程与handler消息机
  8. android 数据保存与提取
  9. Android调用第三方程序
  10. android 全屏 去掉标题栏