android 6.0 拨号界面,【Dialer】android6.0拨号界面分析<一>

题记

工作需要,最近对拨号模块进行研究,下文主要介绍Android6.0下拨号应用主界面。

Dialer代码目录

Dialer上层代码主要有以下部分组成:

/packages/apps/Dialer/ –拨号应用主入口

/packages/apps/ContactsCommon –与Contacts共用的代码

/packages/apps/PhoneCommon

/packages/apps/InCallUI –通话界面

Dialer主界面

下面我们就对Dialer主界面进行分析,界面如下图:

由Dialer应用的AndroidManifest文件得知,Dialer的主activity为DialtactsActivity:

android:label="@string/launcherActivityLabel"

android:theme="@style/DialtactsActivityTheme"

android:launchMode="singleTask"

android:clearTaskOnLaunch="true"

android:icon="@mipmap/ic_launcher_phone"

android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"

android:screenOrientation="portrait">

... ...

那么我们就开始分析DialtactsActivity.java;

首先查看onCreate函数,该函数对界面完成初始化:

1. 主界面布局

setContentView(R.layout.dialtacts_activity);

初始化actionBar 主界面最上方

onCreate中代码如下,该处只列出初始化过程,不对actionbar的功能进行叙述。

//获取ActionBar

final ActionBar actionBar = getActionBar();

//设置ActionBar的布局

actionBar.setCustomView(R.layout.search_edittext);

actionBar.setDisplayShowCustomEnabled(true);

actionBar.setBackgroundDrawable(null);

加载视图

由于dialtacts_activity.xml中只是空布局,onCreate中进行布局的加载,添加相应的fragment;

getFragmentManager().beginTransaction()

.add(R.id.dialtacts_frame, new ListsFragment(), TAG_FAVORITES_FRAGMENT)

.add(R.id.dialtacts_container, new DialpadFragment(), TAG_DIALPAD_FRAGMENT)

.commit();

此时onCreate就完成了,布局的加载;乍一看然而并没有对下面的ViewPagerTabs和mViewPager(也就是拨号的快速拨号、通话记录、联系人页面)进行初始化。

仔细跟踪代码,可以发现这些界面是在ListsFragment()中进行初始化的,下面来进行介绍。

(快速拨号、通话记录、联系人页面)主要布局初始化

下面主要分析ListFragment(/DialtactsActivity/src/com/android/dialer/list/ListsFragment.java);

Fragment的学习可参照我之前的一篇博客:

整体fragment的布局:

final View parentView = inflater.inflate(R.layout.lists_fragment, container, false);

布局文件内容如下:

此处的com.android.contacts.common.list.ViewPagerTabs即为图中ViewPagerTabs;android.support.v4.view.ViewPager为图中的mViewPager;

通过ViewPagerTabs、ViewPager、ViewPagerAdapter三者之间的交互完成主要布局的初始化;代码如下,下章进行介绍分析三者之间的交互;

ViewPager、Adapter、fragment的使用,可参照如下帖子进行学习,非常的详细:

主要涉及代码目录:

/DialtactsActivity/src/com/android/dialer/list/ListsFragment.java

/ContactsCommon/src/com/android/contacts/common/list/ViewPagerTabs.java

后记

一步一个坑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值