qq_20258523 2019-01-25 14:53 采纳率: 0%
浏览 907
已结题

Android 关于 viewpaper 滑动状态的监听

通过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时遇到的编译问题