線上服務咨詢
Article/文章
記錄成長點滴 分享您我感悟
ViewPager的setOnPageChangeListener方法詳細
發表時間:2019-07-30 16:02:10
文章來源:沈陽軟件開發
標簽:網站建設 小程序開發 小程序制作 微信小程序開發 公眾號開發 微信公眾號開發 網頁設計 網站優化 網站排名 網站設計 微信小程序設計 小程序定制 微信小程序定制
瀏覽次數:0
使用ViewPage時,最關鍵的代碼是setOnPageChangeListener,傳入ViewPager.SimpleOnPageChangeListener對象。 ViewPager.SimpleOnPageChangeListener是一個接口,有三種方法,下面介紹。注意:ViewPager有兩個操作,一個是用手指滑動頁面,另一個是直接setCurrentItem(通常用于直接單擊上面的tab,setCurrentItem)。對于這兩種情況,還將分別介紹以下方法介紹。最后,我們將討論這三種方法的相對執行順序。 1.onPageSelected(int position):此方法有一個參數位置,表示選擇了哪個頁面。當用手指翻動時,如果翻轉成功(滑動距離足夠長),則在手指抬起時立即執行該方法,并且該位置是當前刷過的頁面。如果直接將setCurrentItem設置為page,則該位置與setCurrentItem參數相同。這將在onPageScrolled執行方法之前立即執行。 2.onPageScrolled(int position,float positionOffset,int positionOffsetPixels):在屏幕滾動期間將連續調用此方法。有三個參數,第一個位置,這個參數應該特別注意它。 當用手指滑動時,如果手指沒有在頁面上移動,則位置和當前頁面索引是相同的;如果手指向左拖動(相應的頁面向右翻轉),則此時位置與當前頁面最為一致。如果頁面成功轉動,最后一次調用只會成為目標頁面;如果手指向右拖動(相應的頁面向左翻轉),此時位置與目標頁面最為一致,只有頁面不成功。在最后一次通話的情況下,原始頁面將成為原始頁面。將setCurrentItem直接設置為頁面時,如果它是相鄰的(例如現在是第二頁,跳轉到第一頁或第三頁),如果頁面向右翻轉,則大部分時間與當前頁面一致。只有最后一次成為目標頁面;如果它向左翻轉,位置和目標頁面是相同的。這與用手指翻動頁面基本相同。如果它不相鄰,例如,我從第一頁跳到第三頁,首先是位置0,然后逐漸變為1,然后逐漸變為2;我從第三頁跳到第一頁,位置是第一位,然后逐漸變為0,并且不會顯示為2. positionOffset是當前頁面的滑動比率。如果頁面向右翻轉,則該值將繼續增加,最后在接近1后它將突然變為0.如果頁面向左翻轉,則該值將逐漸變小并最終變為零。 positionOffsetPixels是當前頁面的幻燈片像素,其變化與positionOffset一致。 3.onPageScrollStateChanged(int state):當手指操作屏幕時,此方法會發生變化。有三個值:0(END),1(PRESS),2(UP)。 用手指翻動時,按下手指時會觸發此方法。狀態值為1.當手指抬起時,如果發生滑動(即使它很小),該值將變為2,然后它將變為0。該方法總共進行三次。一種特殊情況是手指按下后不會發生滑動。此時,只調用此方法兩次,狀態值為1,0。當setCurrentItem翻頁時,此方法執行兩次,狀態值分別為2,0。三種方法的執行順序如下:當用手指翻頁時,首先執行onPageScrollStateChanged(1),然后連續執行onPageScrolled。放置手指時,立即執行onPageScrollStateChanged(2),然后立即執行onPageSelected。然后繼續執行onPageScrollStateChanged,最后執行onPageScrollStateChanged(0)。由此可以引入其他情況,并且將不再描述。
標簽:& nbsp& nbsp沈陽app開發& nbsp沈陽appDesign& nbspviewPager網站建設,小程序開發,小程序制作,微信小程序開發,公眾號開發,微信公眾號開發,網頁設計,網站優化,網站排名,網站設計,微信小程序設計,小程序定制,微信小程序定制