ViewPager 滑動一半的判斷方法以及左滑右滑判斷實(shí)例
做項(xiàng)目的時候,會碰到用viewpager + fragments去實(shí)現(xiàn)多頁滑動。有些時候需要完成:界面在滑動到一半或是一半以上的時候,需要把title之類的切換到下一個頁面。這個時候僅僅依賴Viewpager的接口是不能判斷,這里提供一個方法:判斷viewpager是左滑還是右滑,同時對滑過一半的時候(這個參數(shù)可以調(diào)),進(jìn)行相關(guān)操作。
//定義兩個變量,這個兩個變量是表示滑動時候,positionOffset 是從大到 //小的變化,還是從小到大的變化。用于在滑動時候,避免多次調(diào)用一個方法 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) { //設(shè)定滑動的邊界,這里設(shè)置的滑動到一半 float radiusOffsetHead = 0.5f; //如果滑動小于一半,通過isSmallToBig這個變量來避免多次調(diào)用 // 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 滑動一半的判斷方法以及左滑右滑判斷實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android設(shè)置默認(rèn)鎖屏壁紙接口的方法
這篇文章主要介紹了Android默認(rèn)鎖屏壁紙接口的設(shè)置方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01在AndroidManifest.xml中uses-sdk內(nèi)屬性意思
本文為大家講解下minSdkVersion、targetSdkVersion、maxSdkVersion、target API level四個數(shù)值的意思與區(qū)別,感興趣的朋友可以參考下哈2013-06-06Android如何獲取QQ與微信的聊天記錄并保存到數(shù)據(jù)庫詳解
這篇文章主要給大家介紹了關(guān)于Android如何獲取QQ與微信的聊天記錄并保存到數(shù)據(jù)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2018-04-04Android懸浮窗屏蔽懸浮窗外部所有的點(diǎn)擊事件的實(shí)例代碼
這篇文章主要介紹了Android懸浮窗屏蔽懸浮窗外部所有的點(diǎn)擊事件實(shí)例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03Android中使用OkHttp包處理HTTP的get和post請求的方法
OkHttp包為安卓開發(fā)中的HTTP協(xié)議網(wǎng)絡(luò)編程帶來了很大的便利,這里我們就來看一下最基本的、Android中使用OkHttp包處理HTTP的get和post請求的方法:2016-07-07搭建mac使用Charles抓包安卓app環(huán)境配置過程
這篇文章主要為大家介紹了mac使用Charles抓包,安卓app環(huán)境搭建的配置過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02