前言
最近在做項(xiàng)目的時(shí)候,有個(gè)需求就是實(shí)現(xiàn)自動(dòng)輪播式的ViewPager,最直觀的例子就是知乎日?qǐng)?bào)頂部的ViewPager,它內(nèi)部有著好幾個(gè)子view,每個(gè)一段時(shí)間便自動(dòng)滑動(dòng)到下一個(gè)item view,而底部的指示器也隨之跟著改變。使用這種ViewPager的好處是在有限的空間內(nèi)可以展示出多樣化的信息。輪播式ViewPager廣泛應(yīng)用于各種應(yīng)用內(nèi)部,用于展示廣告等。抱著學(xué)習(xí)和分享的目的,筆者把輪播式ViewPager寫(xiě)成了一個(gè)獨(dú)立的控件,以方便以后的使用。
效果展示
話不多說(shuō),我們先來(lái)看看實(shí)現(xiàn)的效果是怎樣的:
從上面的動(dòng)態(tài)圖可以看到,當(dāng)我們手指拖動(dòng)ViewPager的時(shí)候,下方的指示器隨著頁(yè)面的滑動(dòng)而滑動(dòng),當(dāng)點(diǎn)擊添加數(shù)據(jù)的按鈕的時(shí)候,ViewPager的數(shù)據(jù)項(xiàng)變多,同時(shí)下方的指示器也隨之改變,適應(yīng)了數(shù)據(jù)項(xiàng)的數(shù)目。
從上面的動(dòng)態(tài)圖可以看到,當(dāng)我們不用手指進(jìn)行拖動(dòng)的時(shí)候,該ViewPager會(huì)每隔4s左右的時(shí)間自動(dòng)進(jìn)行滾動(dòng),滾動(dòng)到最后一個(gè)item view的時(shí)候,下一次會(huì)滾到第一個(gè)位置。
GitHub地址及使用介紹
讀者可以直接到我的GitHub中獲取源碼。
GitHub:BannerViewPager,控件及其相關(guān)文件都放在了該目錄下的library模塊內(nèi),而app模塊則是上面效果展示的一個(gè)簡(jiǎn)單應(yīng)用。
通過(guò)以下幾個(gè)步驟,就能方便地使用該控件了:
1、像普通的ViewPager一樣,在布局文件中放入該控件如下: