AutoBanner是一款支持自動輪播的banner,主要是kt + Rxjava編寫。支持單圖和多圖,支持指示點的位置變化,包括和輪播圖同等級也可以在輪播圖的下面,在輪播圖的左面,中間,右面,支持指示點設置背景,支持指示點設置上下左右margin,支持設置自動輪播的停留時間,支持設置自動輪播的scroll時間等等。
核心代碼:
override fun onPageScrollStateChanged(state: Int) {
when (state) {
0
-> if (currentItem == 0) {
viewPager!!.setCurrentItem(size, false)
} else if (currentItem == size + 1) {
viewPager!!.setCurrentItem(1, false)
}
1
-> if (currentItem == size + 1) {
viewPager!!.setCurrentItem(1, false)
} else if (currentItem == 0) {
viewPager!!.setCurrentItem(size, false)
}
2
-> {
}
}
}
override fun getCount(): Int {
return imgViews.size;
}
並不是利用Viewpager 適配器的getCount()無限大,還是保持原數據的大小,而是滑到最後一個view的時候切換到第一個view,保證無限輪播。
Github具體代碼:https://github.com/codeFarmL/AutoBanner