前言
ViewPager在Android開發中使用場景實在是太多了:廣告Banner、滑動展示、啟動頁、歡迎頁等等
在上一篇文章我已經介紹過Viewpage的基礎知識,閱讀本文前請先看Android開發:ViewPage簡介&使用教程
ViewPager的關鍵在于頁面滑動,今天,我將對滑動事件的接口OnPageChangeListener()進行詳細介紹與分析
目錄
目錄
1.滑動接口介紹
Viewpage的滑動接口:OnPageChangeListener()
-
在OnPageChangeListener接口里,必須復寫的三個方法:
- onPageScrollStateChanged(int arg0)
- onPageScrolled (int arg0,float arg1,int arg2)
- onPageSelected(int arg0)
2. 復寫方法介紹
2.1 onPageScrollStateChanged(int arg0)
- 方法調用:頁面狀態改變時
頁面狀態分為靜止、滑動時和滑動后
- 參數說明:arg0=頁面狀態,頁面狀態分別是:
SCROLL_STATE_IDLE:空閑狀態
SCROLL_STATE_DRAGGING:滑動狀態
SCROLL_STATE_SETTLING:滑動后自然沉降的狀態
2.2 onPageScrolled(int arg0,float arg1,int arg2)
- 方法調用:當頁面在滑動時至滑動被停止之前,此方法會一直調用
- 參數說明:
arg0 :當前頁面,及你點擊滑動的頁面
arg1:當前頁面偏移的百分比
arg2:當前頁面偏移的像素位置
2.3 onPageSelected(int arg0)
- 方法調用:頁面跳轉完后調用
- 參數說明:arg0=當前選中頁面的Position(位置編號)
3. 具體調用順序(附實例)
我將用“滑動一次頁面:從歡迎頁1滑動到歡迎頁2”的實例來說明上述復寫方法的調用順序。
實例示意圖
3.1 具體代碼(同時復寫了上述3個方法)
//設置viewPager頁面滑動的事件
viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
//頁面狀態改變時調用
@Override
public void onPageScrollStateChanged(int arg0) {
switch (arg0) {
case ViewPager.SCROLL_STATE_IDLE:
System.out.println("onPageScrollStateChanged==SCROLL_STATE_IDLE==空閑狀態");
break;
case ViewPager.SCROLL_STATE_DRAGGING:
System.out.println("onPageScrollStateChanged==SCROLL_STATE_DRAGGING==正在滑動");
break;
case ViewPager.SCROLL_STATE_SETTLING:
System.out.println("onPageScrollStateChanged==SCROLL_STATE_SETTLING==自然沉降");
break;
}
}
//頁面滑動過程中調用
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
System.out.println("onPageScrolled==滑動中==滑動前頁面位置是:”+arg0);
}
//頁面滑動后調用
@Override
public void onPageSelected(int arg0) {
System.out.println("onPageSelected==滑動后==頁面停留位置是:"+arg0);
}
});
3.2 結果顯示
結果分析
3.3 結果詳細分析
一張圖讓你完全了解Viewpage滑動接口復寫方法的調用順序!
結果詳細分析
4. 總結
- 經過上面的詳細講解,相信大家現在對Viewpage已經非常了解
- 接下來,我會繼續講解Android開發中其他知識,感興趣的同學可以繼續關注Carson_Ho的簡書
相關系列文章閱讀
Carson帶你學Android:學習方法
Carson帶你學Android:四大組件
Carson帶你學Android:自定義View
Carson帶你學Android:異步-多線程
Carson帶你學Android:性能優化
Carson帶你學Android:動畫
歡迎關注Carson_Ho的簡書
不定期分享關于安卓開發的干貨,追求短、平、快,但卻不缺深度。