AutoBanner是一款支持自动轮播的banner,主要是kt + Rxjava编写。支持单图和多图,支持指示点的位置变化,包括和轮播图同等级也可以在轮播图的下面,在轮播图的左面,中间,右面,支持指示点设置背景,支持指示点设置上下左右margin,支持设置自动轮播的停留时间,支持设置自动轮播的scroll时间等等。
banner.jpg核心代码:
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
网友评论