OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化

继续昨天的讲解,昨天讲到了在Main.java中实现了一个广播接收程序,之后,是一系列的初始化操作

一、网络连接的判断

这里的appContext是一个全局的应用程序类,是Application类的子类,关于Application,官方的解释是:

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第1张图片

再来看isNetworkConnected方法

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第2张图片

方法首先获得ConnectivityManager,然后获得NetworkInfo来判断网络是否可用,很简单,只是简单的API调用,关于getSystemService的深入讲解,以后会讲到


二、页面数据的初始化

判断完网络及初始化登录信息后,接下里便进入了重点:页面数据的初始化

1.初始化头部视图

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第3张图片

该段代码主要初始化了一些头部页面的数据,并设置了某些按钮的点击事件,包括搜索(资讯页面)、发帖(问答页面)、发布动弹(动弹页面)


2.初始化底部栏

特别注意fbSetting,点击该按钮会弹出一个自定义的对话框

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第4张图片

实现这一效果的代码如下:

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第5张图片

mGrid是一个在定义的UI,继承于PopupWindow(关于更多PopupWindow介绍),即弹出对话框

那么,mGrid是在哪里初始化的呢?

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第6张图片

可以看到在此初始化了,并设置了相应的监听器

接下来是initPageScroll方法,该方法用于初始化整个app的水平滚动分页,要值得注意的是

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第7张图片

这里为什么要*2?

请看footer的布局文件内容

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第8张图片

button与button之间隔了一个imageview,所以这里要乘2


默认显示第一页(即第一个footer的icon为选中状态,不幸可在此处改为其他数值查看)

最后是初始化页面相关内容,并在不同tab页跳转时设置底部菜单的选中状态

紧接着时初始化各个主页的按钮

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第9张图片

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第10张图片


初始化通知信息标签控件

OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化_第11张图片


初始化所有的listview



好了,这就是今天要讲的初始化相关的内容!


你可能感兴趣的:(OSChina Android源代码剖析(6)—首页代码逻辑分析之初始化)