巧用ViewPager实现日历场景

本文介绍了如何借助ViewPager巧妙地实现日历场景的循环滑动,通过复用3个视图展示不同月份的数据,根据position动态绑定,解决了资源消耗和计数问题。详细步骤包括:设置getCount()返回月份数,复用view并绑定数据,处理边界情况,以及在destroyItem方法中保持空操作。最后展示了实现效果,并提供了源码链接。
摘要由CSDN通过智能技术生成

巧用ViewPager实现日历场景

android中用ViewPager实现循环滑动 一文的结尾我们曾留了个小问题:

提个小问题:如果换一个场景,比如在日历中,我们每滑一下就显示下一个月或上一个月的日历,一般做个日历的话都要可以查询上百年的日期吧,如果使用上述方法,难道我们要传N多个view到ViewPagerAdapter里面吗?显然这是不可能的。如果只用三个view呢,让它们循环使用,这也有个问题,你怎么知道它滑到哪年哪月了呢?难道要自己用个计数器把它记起来?会不会太麻烦?下一篇来讲讲如何解决这个问题。

那么今天就来看看怎么解决这个问题。显然传n个view的情况是不现实的,所以放弃。接下来看看第二种方案。

使用循环是值得考虑的,循环可以节省很多资源,也基本上能实现我们的需求。只是有个计数的问题我们需要再考虑一下,看有没有比使用计数器更简便的方法来实现。一般情况下,我们需要显示几个view就传几个view到viewPagerAdapter当中,如我们要显示100个月的日历,那么按一般情况下传100个view进去,每个view代表一个月的日历。这样viewPagerAdapter中的每个position所对应的view就是月份数,不需要计数。那么很自然我们就会想到在getCount()方法中返回我们要显示的月份的个数,然后只传一个view到adapter中,每个月

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值