wenchaosong / banner Goto Github PK
View Code? Open in Web Editor NEW轮播图控件,支持自定义布局,支持两端缩进,类似卡片,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!
License: Apache License 2.0
轮播图控件,支持自定义布局,支持两端缩进,类似卡片,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!
License: Apache License 2.0
例如,我的banner中有五张图片,在加载完成时让它默认选中第n张
卡片模式,不设置动画,如何设置卡片的两边的边距
自己改库改的很难受
this.setOnHierarchyChangeListener(new OnHierarchyChangeListener() {
@OverRide
public void onChildViewAdded(View parent, View child) {
child.setScaleY(minScale);
child.setAlpha(minAlpha);
}
@Override
public void onChildViewRemoved(View parent, View child) {
}
});
目前我是放一个size为1的数据
“”
你好,多屏显示的时候,我想修改viewpager的绘制顺序已到达中间的卡片是显示在两侧卡片之上,但是BannerViewPager中的getCurrentItem()返回2000多
在 Banner 类中的 onPageSelected(int position) 函数中,与 youth5201314 的比较少了一下两行
...
if (position == 0) position = count;
if (position > count) position = 1;
...
导致出现数组下标越界
在Banner中实现LifecycleObserver接口,这样的话使用AppCompatActivity就不需要手动在onResume和onPause中去satr和stop了。只需要lifecycle.addObserver(banner)
代码
class MyBanner : Banner, LifecycleObserver {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResume() {
startAutoPlay()
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun onPause() {
stopAutoPlay()
}
}
用资源图片作为指示器时,怎么设置指示器大小。
同时怎么设置指示器和banner的间距,让其距离banner图片较远。
banner.setIndicatorRes(R.drawable.banner_indicator, R.drawable.banner_indicator_selected);
maven {
// TabLayout 依赖
url "https://jitpack.io"
}
就是有图片和视频混播
我设置了默认图片 app:banner_default_image="@mipmap/index_hb01" 但是后台返回数据为空时 并不显示这个默认图片
就像文档中 自定义指示器模式 那个截图里显示的那样
java.lang.IllegalStateException
The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 7, found: 2 Pager id: xxx.xxx.xxx:id/bannerViewPager Pager class: class com.ms.banner.view.BannerViewPager Problematic adapter: class com.ms.banner.Banner$BannerPagerAdapter
现在只能是CenterCrop
包名都写对了,也跟着步骤来了。
Caused by: android.view.InflateException: Binary XML file line #139: Error inflating class com.ms.banner.Banner
我现在tab+viewpager+fragment,第一个tab下顶部有banner(本框架),然后我一直切换tab项,再切换回第一个tab,banner里的轮播图会消失
hello,无限轮播的时候,一直调用holder的createView,里面不断通过LayoutInflater填充生成View,这会有性能问题吧,感觉holder没起到复用的作用。
如果list只有一项,显示的时候左右都会多出一点,给人还有多余项目的错觉,所以在BannerPagerAdapter的getCount方法中最好做出如下判断:
@OverRide
public int getCount() {
if(mDatas.size() == 1){
return mDatas.size();
}else {
return mDatas.size() + 2;
}
}
这样就没有问题了。
如题:
List<List> splitList = CollectionUtils.getSplitList(strings, 8);
bannerPingpai.setBannerStyle(BannerConfig.NOT_INDICATOR);
bannerPingpai.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@OverRide
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
ToastUitl.showShort(position + "");
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
bannerPingpai.setPages(splitList, new HolderCreator<BannerViewHolder>() {
@Override
public BannerViewHolder createViewHolder() {
return new CustomViewHolder();
}
}).start();
class CustomViewHolder implements BannerViewHolder<List> {
@BindView(R.id.recyclerView)
RecyclerView mRecyclerView;
@Override
public View createView(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.item_wholesale_pingpai_layout, null);
ButterKnife.bind(this, view);
return view;
}
@Override
public void onBind(Context context, int position, List<String> data) {
/**/ 数据绑定,这里先加载的是大list的第二个元素**
PingPaiHotAdapter mPingPaiHotAdapter = new PingPaiHotAdapter(data);
mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 4));
mRecyclerView.setAdapter(mPingPaiHotAdapter);
mPingPaiHotAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
String item = mPingPaiHotAdapter.getItem(position);
ToastUitl.showShort(item);
}
});
}
}
ERROR: Failed to resolve: com.github.wenchaosong:Banner:2.3.7
Show in Project Structure dialog
Affected Modules: app
mIndicatorSelectedResId的类型为int,有些地方只能用drawable类型,所以建议将mIndicatorSelectedResId这些设置为drawable
依赖报错依赖报错依赖报错,这次删了我就不来了
可以自定义指示器的样式不?
例如我给定两个图片,一张普通的,一张是选中的
一个Activity中多个fragment,其中一个fragment的轮播图设置了圆角,其他的也自动变为圆角,不能设置为无圆角效果。老铁们,这个是什么问题?
Scale动画不显示图片白屏
这个banner使用挺好的 有一个问题,就是我设置banner图片为圆角图片了,根布局使用cardView实现的,banner切换滑动的时候,圆角careView就变了直角,请问大概是什么原因呢
你好,list.size=0的时候,怎么处理才好呢?
页面中的banner图不显示了,刷新也没用,不知道是fragment的问题,还是banner的bug
setOnBannerClickListener 有时无效
在RecyclerView中下拉刷新会报错
错误如下:
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 1000, found: 0 Pager id: cn.zhouheiya.app:id/bannerViewPager Pager class: class com.ms.banner.view.BannerViewPager Problematic adapter: class com.ms.banner.Banner$BannerPagerAdapter
at android.support.v4.view.ViewPager.populate(ViewPager.java:1135)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1084)
at android.support.v4.view.ViewPager$3.run(ViewPager.java:267)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1065)
at android.view.Choreographer.doCallbacks(Choreographer.java:877)
at android.view.Choreographer.doFrame(Choreographer.java:805)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1051)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:522)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
求指教啊 大佬
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
-keep class com.ms.banner.** {
*;
}
上面三个 banner,下面3个 fragment 页面切换,如何使用,谢谢
不设置holder的时候,可以有个默认的
现在设置的话是四周同时,加了margin 我的需求是只有右边margin
小哥麻烦加个QQ:1260321778
怎么去监听滑动,我想要跟天猫首页banner一样滑动banner改变头部块的颜色
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.