ViewPager 滑动一半的判断方法以及左滑右滑判断实例

所属分类: 软件编程 / Android 阅读数: 1740
收藏 0 赞 0 分享

做项目的时候,会碰到用viewpager + fragments去实现多页滑动。有些时候需要完成:界面在滑动到一半或是一半以上的时候,需要把title之类的切换到下一个页面。这个时候仅仅依赖Viewpager的接口是不能判断,这里提供一个方法:判断viewpager是左滑还是右滑,同时对滑过一半的时候(这个参数可以调),进行相关操作。

//定义两个变量,这个两个变量是表示滑动时候,positionOffset 是从大到
 //小的变化,还是从小到大的变化。用于在滑动时候,避免多次调用一个方法
 private boolean isSmallToBig = true;
 private boolean isBigToSmall = false;

  //记录上一次滑动的positionOffsetPixels值
  private int lastValue = -1;
  @Override
  public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    if (positionOffset != 0) {
      mCurrentPage = position;
      boolean isLeft = true;
      if (lastValue >= positionOffsetPixels) {
        //右滑
        isLeft = false;
      } else if (lastValue < positionOffsetPixels) {
        //左滑
        isLeft = true;
      }
      setIndiactorView(positionOffset,isLeft);
    }
    lastValue = positionOffsetPixels;

  }

  private void setIndiactorView(float positionOffset,boolean isLeft) {
    
    //设定滑动的边界,这里设置的滑动到一半
    float radiusOffsetHead = 0.5f;
    //如果滑动小于一半,通过isSmallToBig这个变量来避免多次调用
    // initIndicatorView 方法
    if (positionOffset <= radiusOffsetHead && !isSmallToBig) {

      initIndicatorView(mCurrentPage);
      isSmallToBig = true;
      isBigToSmall = false;

    } else if (positionOffset > radiusOffsetHead && !isBigToSmall) {
     //超过一半。如果是左滑,就-1,如果是右滑,就+1
      int currnt = isLeft ? mCurrentPage + 1 : mCurrentPage - 1;
      initIndicatorView(currnt);
      isBigToSmall = true;
      isSmallToBig = false;
    }
  }

以上这篇ViewPager 滑动一半的判断方法以及左滑右滑判断实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android动态加载Activity原理详解

这篇文章主要介绍了Android动态加载Activity原理详解的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Android App中实现相册瀑布流展示的实例分享

这篇文章主要介绍了Android App中实现相册瀑布流展示的实例分享,例子中利用到了缓存LruCache类的相关算法来解决大量加载问题,需要的朋友可以参考下
收藏 0 赞 0 分享

Android开发中ImageLoder进行图片加载和缓存

这篇文章主要介绍了Android开发中ImageLoder进行图片加载和缓存的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Android Activity之间切换传递数据的方法

这篇文章主要介绍了详解Android Activity之间切换传递数据的方法 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Android 手机卫士设置向导页面

这篇文章主要介绍了详解Android 手机卫士设置向导页面的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

深入浅析Android手机卫士保存密码时进行md5加密

一般的手机没有root权限,进不去data/data目录,当手机刷机了后,拥有root权限,就可以进入data/data目录,查看我们保存的密码文件,因此我们需要对存入的密码进行MD5加密,接下来通过本文给大家介绍Android手机卫士保存密码时进行md5加密,需要的朋友一起学习
收藏 0 赞 0 分享

Android仿百度外卖自定义下拉刷新效果

大家在使用百度外卖的订餐的时候,会看到有个下拉刷新功能非常不错,今天小编就通过代码给大家介绍android仿百度外卖自定义下拉刷新,感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

详解Android中Service服务的基础知识及编写方法

这篇文章主要介绍了详解Android中Service服务的基础知识及编写方法,包括Service的启动流程及生命周期等基本内容,需要的朋友可以参考下
收藏 0 赞 0 分享

实例讲解Android中的AIDL内部进程通信接口使用

这篇文章主要通过实例介绍了Android中的AIDL内部进程通信接口使用,文中通过一个音乐播放的服务编写例子来讲解AIDL的传递对象及一般使用步骤,需要的朋友可以参考下
收藏 0 赞 0 分享

浅析Android系统的架构以及程序项目的目录结构

这篇文章主要介绍了Android系统的架构以及程序项目的目录结构,是安卓开发入门学习中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多