CalendarPickerView 源码导读
来源:互联网 发布:2017淘宝详情页尺寸 编辑:程序博客网 时间:2024/06/05 12:02
CalendarPickerView 源码解析
项目相关
TimesSquare是一个开源的日历控件。
其项目托管地址是:https://github.com/square/android-times-square
使用方法可参见:http://blog.csdn.net/songzhiyong1121/article/details/8620670
先看一下程序Sample运行截图:
此libs的程序结构如下:
很简单,基本上从命名上就可以区分每个类的作用。下面我用一张图来帮大家梳理一下这些类的作用:
上面的图片中我们可以看出CalendarPickerView是ListView的子类,那么就一定会有一个Adapter用来为它适配数据,我们就先从这个适配器说起——MonthAdapter 。
正如上图所示getView返回的视图就是MonthView。下面我们看一下MonthView的create()方法:
在create方法里面只是配置了grid header的文字,并没有把相应的日期对应到布局上去,那么是在什么地方真正负责日期与布局的对应呢?在上面CalendarPickerView的适配器的getView方法中除了调用MonthView的create方法创建了MonthView 对象,还调用了init方法,我们来看一看这个方法:
果然这里就是日期与布局绑定的地方。这里cells是一个List<List<MonthCellDescriptor>>类型的数据,其中MonthCellDescriptor这个就是一个对每月中的每一天进行描述的实体类,cells表示一整个月的日期(为了填满这个表格我们还会显示上个月和下个月的日期),而cells列表中的每一项恰好是一个星期的日期。这样我们就可以把日期绑定到CalendarCellView 这个最小的TextView显示日期了。
至此我们就简单的了解一下TimesSquare源码结构。本套开源框架实现起来并不复杂,很容易理解,只要细心阅读大家都可以读懂,也可以在此基础上开发满足自己需求的控件。
最后提供一下最近下载的项目文件,建议大家还是项目托管处下载最新源码。
android-times-square-master.zip
0 0
- CalendarPickerView 源码导读
- square开源日历控件—CalendarPickerView源码导读
- 网络接口源码导读
- 网络接口源码导读
- zlib源码导读[转]
- LinkList 部分源码导读
- linux 系统源码导读
- OpenStack 源码导读
- Activiti源码导读
- 探索 ConcurrentHashMap 源码导读
- Java 源码导读
- LinkedList源码导读
- TreeMap源码导读
- hashset源码导读
- treeset源码导读
- nsq源码导读(序)
- caffe 源码导读
- caffe源码导读系列
- 富文本/超文本
- Linux---export命令
- qtreewidget系列--qtreewidget节点重命名
- 软件测试的基础知识
- 黑马程序员——接口
- CalendarPickerView 源码导读
- MMORPG服务器架构
- HDU 5202 Rikka with string
- 程序员的七种基本技能
- jQuery学习笔记之jQuery构建函数的7种方法
- Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站
- Android Studio调用preview以及修改背景颜色
- 1_MAVEN介绍及环境搭建
- 如何将MongoDB做一项windows服务启动