Viewpager无限循环(首页与尾页平滑过渡)
生活随笔
收集整理的這篇文章主要介紹了
Viewpager无限循环(首页与尾页平滑过渡)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#Viewpager無(wú)限循環(huán)(首頁(yè)與尾頁(yè)平滑過(guò)渡)
##double kill 在網(wǎng)上找了不少的viewpager無(wú)限輪播的例子,大部分都是Interger.MAX_VALUES。 滑到最后一頁(yè)的時(shí)候setCurrentItem(0),這樣雖然實(shí)現(xiàn)了無(wú)限輪播,但是當(dāng)從最后一頁(yè)跳轉(zhuǎn)到第一頁(yè)的時(shí)候不夠優(yōu)雅。。通過(guò)google終于找到了答案:
將你的圖片的list的前后各增加一張圖片,并將最后一張圖片放至圖片的第一張,第一張圖片 放至圖片的最后一張,例如:** List {ABCD} 改為{DABCDA}**這樣滑到最后一張圖片的時(shí)候會(huì)顯示一張圖片而不是突兀的跳過(guò)中間的幾張圖片。然后初始化viewpager的時(shí)候讓他從第一張圖片開(kāi)始輪播:setCurrentItem(1)
核心代碼:
public void onPageScrolled(int i, float v, int i1) { if (v == 0.0){ if (i == 0){ //當(dāng)滑到第一張圖時(shí)顯示最后一張圖并將postion跳至"D"位置 vp.setCurrentItem(mImageViews.length-2,false);}//當(dāng)滑到最后一張圖時(shí)顯示第一張圖并將position跳至"A"位置else if (i == mImageViews.length-1){ vp.setCurrentItem(1,false); } } } 復(fù)制代碼##至此就實(shí)現(xiàn)了無(wú)限輪播。 附上輪播代碼:
Timer timer = new Timer();timer.schedule(new TimerTask(){ public void run() { currentItem++; //當(dāng)currentItem等于圖片大小的時(shí)候記得將 currentItem重置為1 if (currentItem== mImageViews.length) {currentItem= 1; } mHandler.sendEmptyMessage(REFRESH_VP_CODE); }}, 3000, 3000); 復(fù)制代碼轉(zhuǎn)載于:https://juejin.im/post/5a3396d26fb9a0450168044d
總結(jié)
以上是生活随笔為你收集整理的Viewpager无限循环(首页与尾页平滑过渡)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vba xml 怎么设置父节点_熊二做了
- 下一篇: flex 下对齐_flex布局