ViewPager的onPageChangeListener三個方法的執行順序及細節

1,ViewPager的onPageChangeListener有三個方法分別是
   onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
   onPageSelected(int position)
   onPageScrollStateChanged(int state)

2,當ViewPager頁面可見時,執行
   onPageScrolled(int position, float positionOffset, int positionOffsetPixels),此時三個參數的值分別是position=0,positionOffset=0.0,positionOffsetPixels=0

3,當按住頁面並往左拖動並且手指未鬆開時,先執行onPageScrollStateChanged(int state),此時,state=1,
然後執行onPageScrolled(int position, float positionOffset, int positionOffsetPixels),此時該方法的三個參數分別爲position=0,positionOffset從0.0開始逐漸增加但始終小於1,positionOffsetPixels從0開始增加,但始終小於屏幕寬度的分辨率

4,繼續第三條的狀態,如果positionOffset<0.6時鬆開手指,此時還是回到原來的界面,而不顯示新的界面,反之將顯示新的界面,

5,當拖動後鬆開手指,無論是否顯示新的界面,將先執行onPageScrollStateChanged(int state),此時,state=2,然後不斷執行onPageScrolled(int position, float positionOffset, int positionOffsetPixels)

   5.1  如果滑動到新的界面,將執行onPageSelected(int position),postion將被賦予當前頁面的索引,然後不斷         執行onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
positionOffsetpositionOffsetPixels的值都變爲0時,執行onPageScrollStateChanged,
        此時state=0

   5.2  如果回到當前的頁面,將首先不斷執行
        onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
	positionOffsetpositionOffsetPixels的值都變爲0時,執行onPageScrollStateChanged,
        此時state=0
發佈了34 篇原創文章 · 獲贊 19 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章