Android 日历开发教程[六]

10 篇文章 1 订阅
10 篇文章 1 订阅

代码应该是比较简单的,如果下载了源文件,理解起来会比较容易。而且贴出代码,显得太累赘,为此我做了下面这张图,其实就是对第一节那个简图的增加版:


使用 ViewPager 是因为我在官方教程里看到了这篇文章:Using ViewPager for Screen Slides,里面还提供了例程下载,再结合上图,可以了解整个过程。

运行的流程按我的理解如下:

  1. MainActivity执行,当屏幕初始化显示时,调用 onCreate() (这里用回调方式,可以避免对象在内存中创建,但未让屏幕显示时被执行画图处理,可以节约系统开支)
  2. onCreate() 中初始化 ViewPager,给出用于页帧管理的对象 CalendarPagerAdapter;设置初始要显示的页码。
  3. ViewPager 针对当前要显示的页码,向 CalendarPagerAdapter 请求包括相邻的两个页的 Fragment,共创建了三个帧对象。如果你用调试去跟踪,你会发现我在上面所说的现象,虽然是创建了三帧对象,但只有一帧的 onCreateView() 方法被调用,因为其它两帧还不需要在屏幕上绘制。
  4. 当某一帧要在屏幕上显示时,CalendarPagerFrament 类的 onCreateView() 方法被回调,在 onCreateView() 方法里,CalendarTableCellProvider 类的 getView 方法接着被调用,在循环里反复调用,直到一整个月所有的单元格被创建。


关于 Layout 如何被创建:

Layout 的 XML 文件,是在代码里被显式加载的,对于 Activity 类,是在 onCreate() 方法中的语句 setContentView(R.layout.activity_main); 来加载,在其它两处,则是使用语句inflater.inflate(R.layout.view_calendar_table, container, false); 来加载。


关于窗口样式:

在 MainActivity 里有一句 requestWindowFeature(Window.FEATURE_NO_TITLE); 而实际上,可以通过设置 Activity 的主题来实现,选择一个 NoActionBar 的主题就可以了。可以打开文件 AndroidManifest.xml,其中的 AboutActivity 被设置为 Dialog 主题风格,显示时就不会有标题栏。BTW,同时,AboutActivity 也不需要菜单,因此我将 IDE 自动生成的菜单 XML 文件,以及代码中的菜单事件处理函数都删除了。


代码的讲解这般就结束了,如果有疑问,可以评论提交。


[待续]


接下来一节再深入一下样式与主题,最后讲一下如何更换应用的图标,以及其它常用技巧。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值