之前用View Pager做了一個(gè)圖片切換的推薦欄(就類(lèi)似與淘寶、頭條客戶端頂端的推薦信息欄),利用View Pager很快就能實(shí)現(xiàn),但是一次無(wú)意間使用淘寶APP的時(shí)候,突然發(fā)現(xiàn)它的效果和我做的還不一樣,淘寶APP的推薦欄可以左右無(wú)限循環(huán)切換,而ViewPager自身其實(shí)并沒(méi)有支持這個(gè)功能。
其實(shí)實(shí)現(xiàn)這個(gè)無(wú)限循環(huán)不難,只需要在數(shù)據(jù)源的首尾各添加一張多余的圖片,在onPagerChangeListener()中監(jiān)聽(tīng)position<1和position>(總數(shù)據(jù)條目-1)就可以了。另外一點(diǎn)需要注意的是,這里的數(shù)據(jù)源+2,而導(dǎo)航小圓點(diǎn)卻比數(shù)據(jù)源少2,這樣在無(wú)限循環(huán)的時(shí)候,小圓點(diǎn)的切換就不好辦了。本人最開(kāi)始也是寫(xiě)邏輯在onPageSelected()里面判斷條件,總感覺(jué)挺麻煩的,有沒(méi)有更好的實(shí)現(xiàn)方式呢。答案是肯定的。只需將小圓點(diǎn)也首尾各家一個(gè),并設(shè)置為invisible不就好了?
我的代碼實(shí)現(xiàn)如下:
xml布局:
<?xml version="1.0" encoding="utf-8"?>