youth5201314 / banner

🔥🔥🔥Banner 2.0 来了!Android广告图片轮播控件,内部基于ViewPager2实现,Indicator和UI都可以自定义。
Apache License 2.0
12.87k stars 2.51k forks source link

在onPageSelected 处理当前画廊效果,为什么第一个和手动滑动的时候不生效?2.2.3版本 #1223

Closed BananaHuo closed 6 months ago

BananaHuo commented 6 months ago

我定义了一个Banner实体,里面有个属性,isSelected判断当前onPageSelected。就会展示描边。 但是 1、当我手动滑动banner的时候; 2、onPageSelected返回position是0的时候; 这2种情况未生效,不知道是哪里写的问题,谢谢 ` banner?.addOnPageChangeListener(object:com.youth.banner.listener.OnPageChangeListener{ override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { }

                    override fun onPageSelected(position: Int) {
                        bannerTitle.text = bannerData[position].name
                        bannerSubTitle.text = bannerData[position].name
                        bannerData.forEachIndexed { index, banner ->
                            banner.isSelected = index  == position
                        }
                        banner?.getAdapter()?.notifyDataSetChanged()
                    }

                    override fun onPageScrollStateChanged(state: Int) {
                    }

                })`

下面是adapter的代码 if (data?.isSelected==true){ holder?.viewLine?.visibility=View.VISIBLE }else{ holder?.viewLine?.visibility=View.INVISIBLE }

BananaHuo commented 6 months ago

改了,另外一种实现方式,实现了这种效果。用自定义的imageview 。动态的给imageview设置strokeWidth和strokeColor然后就实现了这种效果