亚洲乱码卡一卡二卡三永久-亚洲乱码一二三四区-亚洲乱码一区二区三区在线观看-亚洲伦理一区-成人在色线视频在线观看免费大全-成人在线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ā)
  • 返回頂部
主站蜘蛛池模板: 91精品国产自产在线观看高清 | 最近中文字幕大全2019 | 欧美精品成人 | 亚洲毛片在线免费观看 | 久久天天躁日日躁狠狠躁 | a久久久久一级毛片护士免费 | xxxx日本在线播放免费不卡 | 亚洲欧美在线视频观看 | 天天做人人爱夜夜爽2020 | 老司机深夜福利影院 | 草草草在线 | 免费成人小视频 | 亚洲欧美国产18 | 玖玖精品 | 日本黄色大片免费观看 | 免费大片av手机看片 | 精品国偷自产在线视频99 | 涩涩色中文综合亚洲 | 一本三道a无线码一区v | 午夜免费r级伦理片 | 一级片在线免费 | 国产日本欧美高清免费区 | 天天操天天添 | 国产福利小视频在线观看 | 亚州久久 | 中文字幕二区三区 | 在线 你懂 | 国产精品欧美一区喷水 | 特黄一级视频 | 亚洲成熟xxxxx| 一区在线播放 | 国产亚洲sss在线播放 | 免费观看成年的网站 | 亚洲伊人色欲综合网 | 国产男女爽爽爽免费视频 | 欧美日韩成人在线视频 | 一区二区三区免费在线视频 | 日本经典在线三级视频 | 日韩αv| 国产精品九九九久久九九 | 成人网18视频网站 |