大佬写的,我只是把他运行起来了,又按需调整了一下
github.com/AndroidFrok…
这是我修改的分支 github.com/AndroidFrok…
接收数据时 告知holder和适配器 是视频还是图片,就能自己动态加载视频或者图片了,轮播时间建议设置为20秒,视频时间不宜太长 10~20秒为妙。
private fun loadBanner(b: MutableList<AppM.DataDTO.BannerDTO>) {
var banners = mutableListOf<CustomViewsInfo>()
for (item in b) {
banners.add(CustomViewsInfo(item.image, item.type))
}
val holderCreator = BannerHolderCreator()
xbanner?.setBannerData1(banners, holderCreator)
xbanner?.setOnPageChangeListener(object : OnPageChangeListener {
override fun onPageScrolled(i: Int, v: Float, i1: Int) {
}
override fun onPageSelected(i: Int) {
Log.i("onPageSelected=", i.toString() + "")
val isVideo = banners.get(i).type == 2
if (isVideo) {
holderCreator.videoViewHolder.videoView.start()
} else {
holderCreator.videoViewHolder.videoView.pause()
}
}
override fun onPageScrollStateChanged(i: Int) {
Log.i("ScrollStateChanged=", i.toString() + "")
}
})
}