亚洲乱码卡一卡二卡三永久-亚洲乱码一二三四区-亚洲乱码一区二区三区在线观看-亚洲伦理一区-成人在色线视频在线观看免费大全-成人在线91

ViewPage使用時(shí),最關(guān)鍵的代碼就是setOnPageChangeListener,傳入一個(gè)ViewPager.SimpleOnPageChangeListener對(duì)象。ViewPager.SimpleOnPageChangeListener是個(gè)接口,有三個(gè)方法,下面做介紹。
注:ViewPager有兩個(gè)操作,一個(gè)是用手指滑動(dòng)翻頁(yè),一個(gè)是直接setCurrentItem(一般用于點(diǎn)擊上面的tab直接setCurrentItem)。下面的方法介紹也會(huì)針對(duì)這兩種情況分別介紹。
最后還會(huì)討論這三個(gè)方法相對(duì)執(zhí)行順序的問(wèn)題。


1.onPageSelected(int position):這個(gè)方法有一個(gè)參數(shù)position,代表哪個(gè)頁(yè)面被選中。當(dāng)用手指滑動(dòng)翻頁(yè)的時(shí)候,如果翻動(dòng)成功了(滑動(dòng)的距離夠長(zhǎng)),手指抬起來(lái)就會(huì)立即執(zhí)行這個(gè)方法,position就是當(dāng)前滑動(dòng)到的頁(yè)面。如果直接setCurrentItem翻頁(yè),那position就和setCurrentItem的參數(shù)一致,這種情況在onPageScrolled執(zhí)行方法前就會(huì)立即執(zhí)行。



2.onPageScrolled(int position,float positionOffset, int positionOffsetPixels):這個(gè)方法會(huì)在屏幕滾動(dòng)過(guò)程中不斷被調(diào)用。
有三個(gè)參數(shù),第一個(gè)position,這個(gè)參數(shù)要特別注意一下。當(dāng)用手指滑動(dòng)時(shí),如果手指按在頁(yè)面上不動(dòng),position和當(dāng)前頁(yè)面index是一致的;如果手指向左拖動(dòng)(相應(yīng)頁(yè)面向右翻動(dòng)),這時(shí)候position大部分時(shí)間和當(dāng)前頁(yè)面是一致的,只有翻頁(yè)成功的情況下最后一次調(diào)用才會(huì)變?yōu)槟繕?biāo)頁(yè)面;如果手指向右拖動(dòng)(相應(yīng)頁(yè)面向左翻動(dòng)),這時(shí)候position大部分時(shí)間和目標(biāo)頁(yè)面是一致的,只有翻頁(yè)不成功的情況下最后一次調(diào)用才會(huì)變?yōu)樵?yè)面。
當(dāng)直接設(shè)置setCurrentItem翻頁(yè)時(shí),如果是相鄰的情況(比如現(xiàn)在是第二個(gè)頁(yè)面,跳到第一或者第三個(gè)頁(yè)面),如果頁(yè)面向右翻動(dòng),大部分時(shí)間是和當(dāng)前頁(yè)面是一致的,只有最后才變成目標(biāo)頁(yè)面;如果向左翻動(dòng),position和目標(biāo)頁(yè)面是一致的。這和用手指拖動(dòng)頁(yè)面翻動(dòng)是基本一致的。
如果不是相鄰的情況,比如我從第一個(gè)頁(yè)面跳到第三個(gè)頁(yè)面,position先是0,然后逐步變成1,然后逐步變成2;我從第三個(gè)頁(yè)面跳到第一個(gè)頁(yè)面,position先是1,然后逐步變成0,并沒(méi)有出現(xiàn)為2的情況。
positionOffset是當(dāng)前頁(yè)面滑動(dòng)比例,如果頁(yè)面向右翻動(dòng),這個(gè)值不斷變大,最后在趨近1的情況后突變?yōu)?。如果頁(yè)面向左翻動(dòng),這個(gè)值不斷變小,最后變?yōu)?。
positionOffsetPixels是當(dāng)前頁(yè)面滑動(dòng)像素,變化情況和positionOffset一致。


3.onPageScrollStateChanged(int state):這個(gè)方法在手指操作屏幕的時(shí)候發(fā)生變化。有三個(gè)值:0(END),1(PRESS) , 2(UP) 。
當(dāng)用手指滑動(dòng)翻頁(yè)時(shí),手指按下去的時(shí)候會(huì)觸發(fā)這個(gè)方法,state值為1,手指抬起時(shí),如果發(fā)生了滑動(dòng)(即使很小),這個(gè)值會(huì)變?yōu)?,然后最后變?yōu)? 。總共執(zhí)行這個(gè)方法三次。一種特殊情況是手指按下去以后一點(diǎn)滑動(dòng)也沒(méi)有發(fā)生,這個(gè)時(shí)候只會(huì)調(diào)用這個(gè)方法兩次,state值分別是1,0 。
當(dāng)setCurrentItem翻頁(yè)時(shí),會(huì)執(zhí)行這個(gè)方法兩次,state值分別為2 , 0 。


三個(gè)方法的執(zhí)行順序?yàn)椋河檬种竿蟿?dòng)翻頁(yè)時(shí),最先執(zhí)行一遍onPageScrollStateChanged(1),然后不斷執(zhí)行onPageScrolled,放手指的時(shí)候,直接立即執(zhí)行一次onPageScrollStateChanged(2),然后立即執(zhí)行一次onPageSelected,然后再不斷執(zhí)行onPageScrollStateChanged,最后執(zhí)行一次onPageScrollStateChanged(0)。
其它的情況由這個(gè)可以推出來(lái),不再贅述。

穩(wěn)定

產(chǎn)品高可用性高并發(fā)

貼心

項(xiàng)目群及時(shí)溝通

專(zhuān)業(yè)

產(chǎn)品經(jīng)理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽(yù)

堅(jiān)持

10年專(zhuān)注高端品質(zhì)開(kāi)發(fā)
  • 返回頂部
主站蜘蛛池模板: 清清草视频 | 国产不卡一区二区视频免费 | 看一级毛片女人洗澡 | 国产性做久久久久久 | 成人a毛片一级 | 美女私密福利第一导航 | 国产免费理论片在线观看 | 久爱www免费人成福利播放 | 成人三级视频在线观看 | 成人免费视频国产 | 97国产成人精品免费视频 | 色偷偷人人| 成片免费观看视频在线网 | 天天搞天天操 | 888xxxx免费视频 | 天天操比| 色网站综合 | 日韩高清特级特黄毛片 | 一级毛片不卡片免费观看 | 欧美成人看片一区二区三区尤物 | 亚洲激情视频图片 | 日韩欧美二区在线观看 | 亚洲精品天堂在线观看 | 日日干狠狠干 | 亚洲欧美日韩国产精品网 | 国产黄的网站免费 | 嘿嘿嘿视频免费网站在线观看 | 欧美深夜福利网站在线观看 | 欧美午夜性刺激在线观看免费 | 91在线老王精品免费播放 | 亚洲精品午夜aaa级久久久久 | 天堂资源吧 | 伊人激情综合 | 国产欧美一区二区三区精品 | 国产欧美日韩精品第二区 | 日韩精品午夜视频一区二区三区 | 国产在线欧美日韩一区二区 | 一区二区精品视频 | 欧美很黄视频在线观看 | 久久天堂网 | 青青草国产免费一区二区 |