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