通过viewpaper的 onPageScrollStateChanged 可以知道当前的滑动状态是正在滑动还是已经滑动完成,但是当viewpaper在首页时继续向左滑动,这个监听还是会存在,如果在这个滑动状态为0就是停止滑动的时候刷新界面,那么如果当前也在第一页时继续向左滑动也会刷新界面,这就很没必要,想请教一下这个问题如何避免呢?
3条回答 默认 最新
- 15999248664 2019-01-25 15:10关注
今天在做项目的时候,由于要处理viewPager页面滑动的事件,所以对其进行了一个小小的研究:
首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener
OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChanged,onPageScrolled ,onPageSelected)
onPageScrollStateChanged(int arg0) ,此方法是在状态改变的时候调用,其中arg0这个参数
有三种状态(0,1,2)。arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,arg0==0的时辰默示什么都没做。
当页面开始滑动的时候,三种状态的变化顺序为(1,2,0),演示如下:
当viewPager状态改变时候的代码块:
https://img-my.csdn.net/uploads/201304/16/1366083605_9502.png
打印结果:
https://img-my.csdn.net/uploads/201304/16/1366083785_1088.png
onPageScrolled(int arg0,float arg1,int arg2) ,当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法回一直得到
调用。其中三个参数的含义分别为:
arg0 :当前页面,及你点击滑动的页面
arg1:当前页面偏移的百分比
arg2:当前页面偏移的像素位置
(参见官网:http://docs.eoeandroid.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html#onPageScrolled(int, float, int))
演示如下:
页面滚动时侯代码:
https://img-my.csdn.net/uploads/201304/16/1366084226_5095.png
日志打印:
https://img-my.csdn.net/uploads/201304/16/1366084267_6134.png
onPageSelected(int arg0) : 此方法是页面跳转完后得到调用,arg0是你当前选中的页面的Position(位置编号)
解决 无用评论 打赏 举报
悬赏问题
- ¥15 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 stm32开发clion时遇到的编译问题