GithubHelp home page GithubHelp logo

zhpanvip / bannerviewpager Goto Github PK

View Code? Open in Web Editor NEW
3.5K 36.0 430.0 131 MB

🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。

License: Apache License 2.0

Java 82.19% Kotlin 17.81%
viewpager banner indicator viewpager2

bannerviewpager's Introduction

BannerViewPager

License MinSdk JitPack Android Arsenal Android Arsenal Stars

公众号:玩转安卓Dev

English | 中文

Tencent Video,QQ Music,KuGou,AliPay,Tmall,TaoBao,YouKu,Himalaya,NetEase Music,Bilibili ect. All of above App's Banner can be implements By BannerViewPager.

Usage

Preview

Download links for other versions: Download V3.5.0,Download V3.4.0

QRCode

1.PageStyle

Sample Click Here

MULTI_PAGE MULTI_PAGE_SCALE MULTI_PAGE_OVERLAP
MULTI_PAGE MULTI_PAGE MULTI_PAGE

More Page Styles

Many page styles can be implement using the setPageStyle() and setRevealWidth().

Style 1 Style 2 Style 3
MULTI_PAGE1 MULTI_PAGE2 MULTI_PAGE3

The Indicator library was split from BannerViewPager,the new repo is ViewPagerIndicator,Click the link to see more information about ViewPagerIndicator

(1)setIndicatorStyle and setIndicatorSlideMode

BannerViewPager supports three Indicator Styles and five Indicator Slide mode now.

Sample Click Here

Attrs CIRCLE DASH ROUND_RECT
NORMAL CIRCLE_NORMAL DASH_NORMAL ROUND_RECT_NORMAL
SMOOTH CIRCLE_SMOOTH DASH_SMOOTH ROUND_RECT_SMOOTH
WORM CIRCLE_WORM DASH_WORM ROUND_WORM
COLOR CIRCLE_COLOR DASH_COLOR ROUND_COLOR
SCALE CIRCLE_SCALE DASH_SCALE ROUND_SCALE

(2)Custom Indicator

It's also support to custom indicator style,just need extends BaseIndicatorView or implement the IIndicator and override methods, then you can draw Indicators for whatever you want.

Sample Click Here

Figure Indicator Drawable Indicator Indicator below of Banner
CIRCLE DASH NORMAL

Contact

If you have any question regard to BannerViewPager, please scan the QR code and join the QQ group to communicate. QQ群60902509

QQ群 入群加微信
QQ Group WeChat

Thanks

玩Android

finite-cover-flow

zguop-banner

License

Copyright 2017-2020 zhpanvip

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

bannerviewpager's People

Contributors

dboy233 avatar icewaterguo avatar liuzhenli avatar xuxh6 avatar xxxifan avatar zhangpan-alo7 avatar zhpanvip avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bannerviewpager's Issues

在ViewPager2下使用时无法滑动Banner

在ViewPage2中的Fragment使用Banner时,滑动Banner时实际上触发的是ViewPager2的滑动效果,请问大佬有么有好的解决办法或者在demo中写个这样的示例,谢谢。

Add shadow under banner

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.

可不可以添加带进度条的样式

感谢作者的开源 希望作者能维护下去
希望添加 进度条的样式 的指示器,每个指示器的点形状 变成进度条 ,进度条满了之后切换下一张

偶尔白屏

好像基于ViewPager的都会偶尔白屏,怎么解决呢

高度不能自适应

设置 BannerViewPager的高度是wrap_content,viewholder 是recyclerview,想要自适应,却发现高度一直是0,不显示viewholder,除非设置 BannerViewPager 的高度,才显示viewholder,即使这样,viewholder也不能自适应高度,只能自己计算~

大哥圆角问题

我写了一天 发现你这个库在我都项目中一直都不能圆角 , 我在新项目把代码复制过去发现能用。。。这个改才能排查是什么导致的

在epoxy中使用BannerViewPager和控制banner中图片展示时间的需求

1.项目中用到了airbnb开源的epoxy用于构造复杂界面。当BannerViewPager滑出屏幕可视区域再滑进可视区域,banner会重新从0开始展示图片,这是因为banner被回收了,通过保存banner的View State,可以记住banner的滑动位置,但问题来了,banner直接是从最后一个item开始显示的。见demo tab4.
2.有个奇葩需求,要控制banner每个item的展示时间

自动轮播&循环

像是引导页这种需求

希望兼容这种模式,自动轮播和不循环

现在代码都设置死了,开启其中一项另一项也强制开启了

itemView延时或不出现,page之间间距不对

我用的是2.4.3.1版本,触发条件:一次手动触摸快速滑动两个itemView的时候(一次滑动两个),新出的itemView会延迟或者不出现,且距离当前itemView的距离变大

代码简洁,看着很舒服,棒棒哒

需求

现在想拿到当前页面的position,但是currentPosition是private的,还请作者写一个get方法,把它暴露出来😊

小建议

大佬你可以做几个banner的样式,这样banner图的功能对大多数情况都能用了

怎么获取每一次轮播的数据

获取每一个滚动后的数据 ,设置holder 是获取了全部的数据 。getCurrentItem() 只能获取第一次的
123
类似于学习强国的 轮播图,监听每一页滚动后的这一页的数据

使用疑惑

作者你好,请问BannerViewPager是如何刷新的呢?我更新数据源后,调用了BannerViewPager中ViewPager的Adapter的notify..方法刷新,但是没有效果

The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged!

版本: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的,所以这个异常有点奇怪。各位有什么想法吗?

圆角问题

设置PageStyle.MULTI_PAGE_OVERLAP跟setPageMargin方式后,中间图是圆角,左右背面两张图无法展现圆角。。

有啥解决方法吗?谢谢

在ViewPage+Fragment中使用

在ViewPage下面的每一个Fragment中都有banner,并且Fragment是复用的,当快速翻页滑动,不一会儿就ANR了。
下面是相关信息
QQ截图20191226154007

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.