Hi there Welcome to my github page
🔗 Connect with me
📕 Latest Blog Posts
🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
License: Apache License 2.0
现在想拿到当前页面的position,但是currentPosition是private的,还请作者写一个get方法,把它暴露出来😊
像是引导页这种需求
希望兼容这种模式,自动轮播和不循环
现在代码都设置死了,开启其中一项另一项也强制开启了
如题 下载了Demo没有这方面的 好像垂直滚动效果都是RV做的
设置PageStyle.MULTI_PAGE_OVERLAP跟setPageMargin方式后,中间图是圆角,左右背面两张图无法展现圆角。。
有啥解决方法吗?谢谢
是否可以指定缩放中心?比如:我可能沿着Y轴缩放,最后View的高度就要往下移动了
如题
在ViewPage2中的Fragment使用Banner时,滑动Banner时实际上触发的是ViewPager2的滑动效果,请问大佬有么有好的解决办法或者在demo中写个这样的示例,谢谢。
1.项目中用到了airbnb开源的epoxy用于构造复杂界面。当BannerViewPager滑出屏幕可视区域再滑进可视区域,banner会重新从0开始展示图片,这是因为banner被回收了,通过保存banner的View State,可以记住banner的滑动位置,但问题来了,banner直接是从最后一个item开始显示的。见demo tab4.
2.有个奇葩需求,要控制banner每个item的展示时间
大佬你可以做几个banner的样式,这样banner图的功能对大多数情况都能用了
正在向ViewPager2迁移么
有混淆规则吗
使用的是com.zhpan.library:bannerview:2.3.5。
好像基于ViewPager的都会偶尔白屏,怎么解决呢
To allow different layout to be inflated depending on the position.
I suggest either passing viewType to getlayoutId and add an extra method in interface for delegating the recyclerView's getViewType(position).
版本:2.4.2
网络请求获取数据,使用void create(List<T> list)
更换数据源
程序崩溃(仅出现一次)
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 5, found: 0 Pager id: cn.example.market:id/vp_main Pager class: class com.zhpan.bannerview.view.CatchViewPager Problematic adapter: class com.zhpan.bannerview.adapter.BannerPagerAdapter
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1143)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager$3.run(ViewPager.java:273)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:910)
at android.view.Choreographer.doCallbacks(Choreographer.java:712)
at android.view.Choreographer.doFrame(Choreographer.java:643)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:896)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6379)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1084)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:945)
根据源码发现create
方法每次都是创建新的adapter的,所以这个异常有点奇怪。各位有什么想法吗?
四页以内又是不可以自动轮播的吗
我写了一天 发现你这个库在我都项目中一直都不能圆角 , 我在新项目把代码复制过去发现能用。。。这个改才能排查是什么导致的
设置 BannerViewPager的高度是wrap_content,viewholder 是recyclerview,想要自适应,却发现高度一直是0,不显示viewholder,除非设置 BannerViewPager 的高度,才显示viewholder,即使这样,viewholder也不能自适应高度,只能自己计算~
指示器不支持 Round_rect 吗?
Hi,
Can you add shadow view under banner?
If will be nice and can be enabled/disabled.
It is a simple CardView. If enabled or disabled you only need change card properties, nothing more.
Thanks.
大佬你好,用了你的banner,非常不错。但是我的itemView配合cardView使用的,因为带海拔,滑动切换的时候都会闪一下,我试了demo里面,也是这样的,帮忙看一下,谢谢。
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@OverRide
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
KLog.e(i);
//这里会回调两次
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
是否可以设置指示器举例轮播图底部的间距?
网络图片加载不出来
indicator距离底部的margin应该可以调节比较好
我用的是2.4.3.1版本,触发条件:一次手动触摸快速滑动两个itemView的时候(一次滑动两个),新出的itemView会延迟或者不出现,且距离当前itemView的距离变大
必须要在gradle中配置
compileOptions{
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
否则,运行就会报错
代码简洁,看着很舒服,棒棒哒
你上下文贴的代码能不能有点关联,上下文的代码根本关联不上,想要使用还得下载源码看你的示例,麻烦修改下
如题, list 容器数量是 3,点击 banner 打印出 log 来,发现 position 分别是:0、2、2。
不设置 setPageTransformerStyle 这个属性的话,position 就正常。
感谢作者的开源 希望作者能维护下去
希望添加 进度条的样式 的指示器,每个指示器的点形状 变成进度条 ,进度条满了之后切换下一张
作者你好,请问BannerViewPager是如何刷新的呢?我更新数据源后,调用了BannerViewPager中ViewPager的Adapter的notify..方法刷新,但是没有效果
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.