youth5201314 / banner

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

画廊效果 #1244

Closed Doublelsl closed 1 week ago

Doublelsl commented 1 week ago

可以实现两边有多张的画廊效果吗

Doublelsl commented 1 week ago

已实现了两端各两张图,实现方法分享如下: 前提:图的总数不少于2张 1.StartPosition要设置为2 2.添加addOnPageChangeListener,onPageSelected中获取当前position,可已直复制Banner中,position是真实位置 3.onPageScrollStateChanged中滑动完成时,根据自己需要添加的图片数量自行实现重新定位,已两端两张为例,位置为0时,定位到getItemCount() - 3,位置为getItemCount() - 3时定位到2 4.自定义adapter,重写onBindViewHolder,参照BannerAdapter,保留 int real = getRealPosition(position); onBindView(holder, mDatas.get(real), real, getRealCount()); if (mOnBannerListener != null) holder.itemView.setOnClickListener(view -> mOnBannerListener.OnBannerClick(mDatas.get(real), real)); 5.自定义adapter中实现getRealPosition,getRealPosition中的逻辑为将原有list中数据的最后两条放到最前方,头两条放在最后放,实现首尾相接。 6.getItemCount中根据自己的需求返回list.size() + 第5步添加的条数,比如我是在list.size()>1时添加4条