设计一个两栏切皆可滑动的日期选择器

发现不记录一下开发的过程的话一出现问题很难理清楚啊(╯‵□′)╯︵┻━┻

大概就是这样一个东西:

Screenshot-2013-11-01-10.41.24

要实现的功能有:

  • 月份选择器可滑动可点击,且月份切换时周视图也随之改变为当月的1号。

  • 周选择器可滑动可点击,点击后通过interface将所选择的日期传递出去。

  • 周选择器在滑动至其他月份时使月选择器自动调整为当前月份。

  • 月份选择器可独立出来

实现的方法:

  • 两个视图都使用viewpager+fragment来实现滑动,且在月份选择器viewpager的两侧加两个button

  • 月份选择器总数为100*12+当前的月份,这儿有一个坑就是用Calendar中的month时,它的范围是0-11的,必须要多+1,在初始化视图的时候自动设置为今天(即最后一个)

  • 月份选择器在滑动后调用周的setCurrentWeek方法,再由其内部调用setCurrentItem方法。

这要解决一个问题:

月份在变化之后带动了周的变化,但是周的变化有可能会再次带动月份的变化,就造成了逻辑的混乱。

想到的解决办法就是只有在滑动周选择器时才会改变月份,滑动月选择器时改变的周视图不会再次去改变月份。

但是滑动周视图后改变了月视图之后月视图也会改变周视图。。所以balablabala要反过来再改一次

虽然挺蛋疼了但总归是解决了这个问题,还有若干个小问题就不提了