基于VerticalViewPager的上下滑动,可带动画效果,类似WheelView

特别声明:本系列文章leicher著作权所有,转载请注明出处。

  • 起因

前段时间一直头疼一个关于类似WheelView的选择器,但要求有动画效果类似这样 :

https://img-blog.csdn.net/20170511095020925?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ5NzcyNzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

之间也有过很多思路(都无疾而终),看过很多开源框架,但是这种效果的比较少,就在此记录一下,希望对需要的人有所帮助。
一次偶然看到张鸿洋大神的关于ViewPager的切换动画

http://blog.csdn.net/lmj623565791/article/details/40411921/

需要的可以去看下然后在github上找到了开源的VerticalViewPager ,脑袋里便蹦出了使用这个来完成此功能的念想。
那么到此关键的问题便是如何显示两边的Item了

http://blog.csdn.net/asia_deng/article/details/70176393

以上便是思路历程。那么接下来看我怎么实现的吧。
首先,VerticalViewPager 网上有很多开源的,实现方法也很简单,在这里我就不赘述了。
然后便是对于VerticalViewPager 显示上下两个Item 了,这个和ViewPager也没啥区别关键在于 :

android:clipChildren="false"

对于ViewPager 的父布局(你想要显示到的地方)和ViewPager 加上该属性便可以实现。
那么仅仅只添加这个是不行的,不知道是ViewPager的原因还是这个属性的原因,可以看到仅仅是在滑动时才能看到上下两个Item。

pager.setOffscreenPageLimit(int x); 

那么这个属性就起作用了,这会让ViewPager加载上下2*x+1个item ,就完美解决了这个问题。
难点便是解决Item 动画的问题了,看了张鸿洋大神的博客之后,想必你也会有所思路,但这不同的是我们要存储的不仅仅是三个Item,而是更多。尤其是当我们需要无限滑动的时候,就像Banner条一样。对于ViewPager来说我们自然不用担心,它会销毁已经不用的Item,但我们要对Item进行动画,
我们必然需要用List保存我们的Item引用。那我们则需要对我们的List管理好,不然滑动多了便会OOM。
以下便是代码:

class Adapter extends PagerAdapter{
    private boolean isSmall(float s){
        return s < 0.01f;
    }

    ViewPager.OnPageChangeListe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值