最近用了两天的时间重写了n年前,我最开始工作所做的第二个自定义控件,现在看来要是原理没搞清楚,其实还是比较难的。当然,因为曾经工作的项目(已经不再运营),所以做了一点点改动,不完全跟原来项目需求一样。
先看看效果。
这个控件由三部分组成,最外层是LinearLayout,然后一条分割线,区分了左边和右边,右边可以横向滚动,在滚动的时候切换了月份,会popup出来相应的年月。
重点是右边滚动部分,我用的viewgroup来实现,基本构思如下:
1.计算item的大小,并且画出来。
2.添加滑动事件:向右滑动的左边边缘检测,在滑动期间判断是否快无数据时候生成更多的数据以便继续滑动。
3.根据滑动的位置判断滑动日期的月份是否发生变化并提示。
4.item的选中事件和回调。
有兴趣到这里看源码:https://github.com/arjinmc/DateScroller