巧用ViewPager实现日历场景
在 android中用ViewPager实现循环滑动 一文的结尾我们曾留了个小问题:
提个小问题:如果换一个场景,比如在日历中,我们每滑一下就显示下一个月或上一个月的日历,一般做个日历的话都要可以查询上百年的日期吧,如果使用上述方法,难道我们要传N多个view到ViewPagerAdapter里面吗?显然这是不可能的。如果只用三个view呢,让它们循环使用,这也有个问题,你怎么知道它滑到哪年哪月了呢?难道要自己用个计数器把它记起来?会不会太麻烦?下一篇来讲讲如何解决这个问题。
那么今天就来看看怎么解决这个问题。显然传n个view的情况是不现实的,所以放弃。接下来看看第二种方案。
使用循环是值得考虑的,循环可以节省很多资源,也基本上能实现我们的需求。只是有个计数的问题我们需要再考虑一下,看有没有比使用计数器更简便的方法来实现。一般情况下,我们需要显示几个view就传几个view到viewPagerAdapter当中,如我们要显示100个月的日历,那么按一般情况下传100个view进去,每个view代表一个月的日历。这样viewPagerAdapter中的每个position所对应的view就是月份数,不需要计数。那么很自然我们就会想到在getCount()方法中返回我们要显示的月份的个数,然后只传一个view到adapter中,每个月