Giter VIP home page Giter VIP logo

Comments (10)

zhpanvip avatar zhpanvip commented on May 30, 2024

是网易云音乐发现页的banner吗?设置BannerViewPager width为match_parent,然后setPageMargin就可以了吧。
对哦,还需要setRevealWidth为负值才可以

from bannerviewpager.

zhpanvip avatar zhpanvip commented on May 30, 2024

我试了下需要加上setPageStyle,这样子是可以实现的:
mViewPager
.setPageMargin(BannerUtils.dp2px(30))
.setRevealWidth(BannerUtils.dp2px(-15))
.setPageStyle(PageStyle.MULTI_PAGE)

from bannerviewpager.

zaaach avatar zaaach commented on May 30, 2024

谢谢大佬,我试了下确实可以的。另外QQ音乐的也是这个样式,但看起来像只有一个margain的,不知道QQ音乐的是怎么实现的

from bannerviewpager.

zaaach avatar zaaach commented on May 30, 2024

QQ音乐的
mViewPager
.setPageMargin(BannerUtils.dp2px(15))
.setRevealWidth(BannerUtils.dp2px(0))
.setPageStyle(PageStyle.MULTI_PAGE)
可以实现,完美!!!

from bannerviewpager.

zhpanvip avatar zhpanvip commented on May 30, 2024

对的,只要知道RevealWidth是两边页面漏出来的宽度,PageMargin是页面间距,最后效果是RevealWidth+PageMargin就能拼出类似效果的所有样式了。

from bannerviewpager.

zaaach avatar zaaach commented on May 30, 2024

对比QQ音乐的banner还有两个细节,
第一:如果改成上面说的QQ音乐样式,从屏幕边缘滑动时banner并不会滑动,QQ音乐的从边缘也可以滑动banner,网易云音乐的从边缘不能滑动(建议加个可选配置如果可以的话)
第二:QQ音乐下拉刷新后,banner数据不变的话不会更新,还是保持之前的滑动状态。
这是我观察QQ音乐的情况,不知道说的对不对,希望大佬可以看下。

from bannerviewpager.

zaaach avatar zaaach commented on May 30, 2024

@zhpanvip 大佬又看到消息吗?

from bannerviewpager.

zhpanvip avatar zhpanvip commented on May 30, 2024

1.实现这种样式其实有多种方式,其实你也可以在item的xml文件里边设置一个marginStart、marginEnd就可以实现网易云音乐的效果。
2.目前BannerViewPager没有刷新功能,每次刷新其实都是重新创建了Adapter的。QQ音乐是怎么处理的也不太清楚,他是在数据没变化的情况下就不去刷新了还是做了缓存刷新后又恢复原来的位置了就不得而知了。如果是判断数据没有变化就不去刷新了我觉得完全可以放到APP逻辑中自己处理,完全没必要让库去支持这种需求。另外,就是刷新这块我觉得BannerViewPager还是可以优化一下的。
3.对于其它APP的细节问题BannerViewPager不可能都考虑到,也不可能做到完全支持所有APP的样式及他们的细节处理。这个我觉得是很难得,因为不同产品需求都有自己的考虑。

from bannerviewpager.

zhpanvip avatar zhpanvip commented on May 30, 2024

README文档末尾新添加了一个交流群,可以加群交流哦。

from bannerviewpager.

zaaach avatar zaaach commented on May 30, 2024

好的明白了,感谢回复:wink:

from bannerviewpager.

Related Issues (20)

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.