AutoBanner(无限轮播)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章