Closed BananaHuo closed 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 }
if (data?.isSelected==true){ holder?.viewLine?.visibility=View.VISIBLE }else{ holder?.viewLine?.visibility=View.INVISIBLE }
改了,另外一种实现方式,实现了这种效果。用自定义的imageview 。动态的给imageview设置strokeWidth和strokeColor然后就实现了这种效果
我定义了一个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) { }
下面是adapter的代码
if (data?.isSelected==true){ holder?.viewLine?.visibility=View.VISIBLE }else{ holder?.viewLine?.visibility=View.INVISIBLE }