BannerViewPager
BannerViewPager copied to clipboard
🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
addData()的内部使用了resetCurrentItem(getCurrentItem())导致。有什么办法可以插入数据但是不破坏滚动效果
开启了循环,一页显示5个,当第一个在中间,点击最左边的那个,调用setCurrentItem选中,正常应该是动画往左边,但实际上是往右边找到了最后一个选中,能解决吗?
MULTI_PAGE_OVERLAP模式下设置item的缩放大于默认值才有效,小于0.85f没有效果
BannerViewPager 调用insertItem 或者removeItem 时,展示内容会出现抖动,由于 mBannerPagerAdapter.notifyDataSetChanged()是刷新整个列表,所以导致选中的item显示异常,insertItem 和removeItem的方法里notifyDataSetChanged改成 notifyItemChanged(index)即可
当setCurrentItem(int item,boolean smoothScroll)中的smoothScroll为false,当data的size为2时,调用后,指示器就不会发生变化,还是原来的位置
banner已有数据并且正在轮播 这时候下拉刷新调用refreshData 会stopLoop这时候有几率会卡一下然后正常轮播
列表上有个底部banner,一开始没有显示,当滑动到底部时,调用refreshData(data)无法显示,create(data)同步创建则没有问题 目前只发生在android studio模拟器:Pixel2 Nexus S Api23
需求:指示器要先隐藏,然后根据左滑右滑让指示器显示 代码: 1、 ` binding.viewpagerImage.setAdapter(imageListAdapter).setAutoPlay(false).setCanLoop(true) .setIndicatorSlideMode(IndicatorSlideMode.NORMAL).setIndicatorVisibility(View.VISIBLE) .setIndicatorGravity(IndicatorGravity.END).setInterval(4000).setScrollDuration(300) .setIndicatorView(FigureIndicatorView(parent.context).apply { setRadius(DimenUtils.dpi2pxi(18)) setTextSize(DimenUtils.dpi2pxi(12)) setTextColor(Color.WHITE) setBackgroundColor(Color.parseColor("#80000000")) }).create() ` 2、 `binding.viewpagerImage.setIndicatorVisibility(View.GONE)` 测试: 发现指示器仍然可见,并没有隐藏 解决: 和作者沟通,可先暂时用反射来控制隐藏显示,以下是可用的代码 `kotlin.runCatching { Timber.d("showImageIndicator:${show}") val bannerClazz: Class = Class.forName("com.zhpan.bannerview.BannerViewPager") val...
控件缩小的问题
用了这个bannerview ,app一进来先正常显示然后又缩小,变成这个样子,你们遇到过吗?然后手动滑动又正常了,下次进来都正常。 代码如下: parkCardBanner.setLifecycleRegistry(getLifecycle()).setAdapter(vehicleAdapter).setAutoPlay(false).setInterval(2000).setPageMargin(5).setRevealWidth(5).setIndicatorVisibility(View.GONE).setIndicatorView(indicatorViewHome) // .setIndicatorSlideMode(IndicatorSlideMode.COLOR) .setPageStyle(PageStyle.MULTI_PAGE_SCALE); parkCardBanner.create(vehicleInfoList); 
我在做图片和视频一起轮播,假始第一第二个是图片,第三第四个是视频,当我一进入界面时,当轮播到第二张图片时,开始播放第三个的视频,当轮播到第三个时,两个视频一起播放,我是按照 ``` @Override protected void bindData(BaseViewHolder holder, BannerData data, int position, int pageSize) { if (getViewType(position) == BannerData.TYPE_NEW) { holder.setImageResource(R.id.image_view, data.getDrawable()); } else { ImageView imageView = holder.findViewById(R.id.banner_image); Glide.with(imageView).load(data.getImagePath()).placeholder(R.drawable.placeholder).into(imageView); }...