溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于無(wú)限循環(huán)viewpager結(jié)合Indicator使用,Indicator初始化,圓圈跳動(dòng)

發(fā)布時(shí)間:2020-07-28 21:28:39 來(lái)源:網(wǎng)絡(luò) 閱讀:535 作者:海太帥 欄目:開發(fā)技術(shù)

一句話不割。

源代碼:

     adpater = new MyPagerAdapter(getSupportFragmentManager());

viewpager = (ViewPager) findViewById(R.id.pager);

viewpager.setAdapter(adpater);

     indicator = (LoopCirclePageIndicator) findViewById(R.id.yIndicator1);

indicator.setViewPager(viewpager,Config.Image_Flip_Start * size);


如果發(fā)生跳動(dòng)行為,那是因?yàn)椋篿ndicator.setViewPager(viewpager,Config.Image_Flip_Start * size),因?yàn)橐獰o(wú)限循環(huán)(假循環(huán),其實(shí)可滑到底),所以后面那個(gè)參數(shù)是設(shè)置viewpager的當(dāng)前頁(yè),讓其顯示當(dāng)前頁(yè)為幾百頁(yè),進(jìn)入indicator類里面找到該方法

代碼:

@Override

public void setViewPager(ViewPager view, int initialPosition) {

setViewPager(view);

setCurrentItem(initialPosition);

}

setCurrentItem(initialPosition)里面有個(gè)mViewPager.setCurrentItem(item);,這里設(shè)置mViewPager的當(dāng)前頁(yè),默認(rèn)有滑動(dòng)效果,將其改為:mViewPager.setCurrentItem(item,false)即可,這樣viewpager沒有滑動(dòng)效果,indicator也就沒有跳動(dòng)情況發(fā)生了;

代碼:

@Override

public void setCurrentItem(int item) {

if (mViewPager == null) {

throw new IllegalStateException("ViewPager has not been bound.");

}

mViewPager.setCurrentItem(item);

mCurrentPage = item;

invalidate();

}


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI