国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

ViewPager 滑動一半的判斷方法以及左滑右滑判斷實例

2019-12-12 03:01:41
字體:
來源:轉載
供稿:網友

做項目的時候,會碰到用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 滑動一半的判斷方法以及左滑右滑判斷實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太原市| 探索| 密云县| 商洛市| 民丰县| 荥经县| 临高县| 泗阳县| 兴义市| 墨江| 大田县| 高雄市| 长春市| 台州市| 隆回县| 竹溪县| 凤台县| 孟连| 绍兴县| 来宾市| 磐石市| 自贡市| 云南省| 晋中市| 肥东县| 临高县| 黄石市| 桂东县| 邵阳县| 南雄市| 安庆市| 民权县| 宿松县| 吐鲁番市| 额济纳旗| 绥中县| 乐业县| 巢湖市| 铜梁县| 万盛区| 织金县|