zoukankan      html  css  js  c++  java
  • ViewPager 滑动一半的判断方法以及左滑右滑判断

    做项目的时候,会碰到用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;
            }
        }
  • 相关阅读:
    ammap demo
    sql批量新增和修改
    js右键菜单
    C# 索引器
    NUnit使用体会
    js拖动效果
    Js 原型对象与原型链(转)
    sql for xml子句
    ASP.NET应用程序生命周期
    HttpWebRequest和HttpWebResponse
  • 原文地址:https://www.cnblogs.com/StephenWu/p/5720282.html
Copyright © 2011-2022 走看看