#1238·banner

2.2.3 版本有什么变化呢?同样的代码,使用 2.2.3 版本加载不出图片,发现 onCreateHolder 都没有调用,但改用 2.2.2 就可以了。

作者: zpszz创建于 2024年8月23日更新于 2026年3月20日

class HomeBannerAdapter(dataList: ArrayList): BannerAdapter<BannerData, HomeBannerAdapter.BannerViewHolder>(dataList) {

inner class BannerViewHolder(var imageView: ImageView): RecyclerView.ViewHolder(imageView) {

    override fun onCreateHolder(parent: ViewGroup?, viewType: Int): BannerViewHolder {
        val imageView = ImageView(parent?.context)
        // 必须设置为match_parent,这是ViewPager2强制要求的
        imageView.layoutParams = ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT,
        )
        imageView.scaleType = ImageView.ScaleType.CENTER_CROP
        return BannerViewHolder(imageView)
    }

    override fun onBindView(holder: BannerViewHolder, data: BannerData, position: Int, size: Int) {
        LogUtil.d("HomeBannerAdapter", data.pic)
        holder.imageView.apply {
            LogUtil.d("HomeBannerAdapter", data.pic)
            load(data.pic)
            // 点击跳转
        }
    }
}

banner.apply {
            setAdapter(mBannerAdapter)
            indicator = CircleIndicator(context)
            addBannerLifecycleObserver(viewLifecycleOwner)
        }

}

内容来源: youth5201314/banner