首页 > 代码库 > Android学习路线(七)设置Action Bar

Android学习路线(七)设置Action Bar

在action bar最今本的形式中,它仅仅在左边展示了activity的标题以及应用的icon。即使在这种简单的形式中,它也只是告诉用户现在在应用的哪个activity中,同时为你的应用保持一个标识。

图1. 一个展示应用icon和activity标题的action bar

设置一个基本的action bar需要你的应用使用支持action bar的主题。如何来请求这样的主题要看你所选择的你的应用最低支持的Android版本。因此本课会根据应用支持的不同的Android最低版本分为两个部分。

支持Android 3.0及以上版本


从Android 3.0 (API level 11)开始,所有的activity都使用的是Theme.Holo主题 (或者它的子主题),包含了action bar,在你的targetSdkVersion 或者minSdkVersion 属性被设置为11或者更高时,Theme.Holo主题是应用默认主题。

所以要为你的activity添加action bar,只需要简单的这是上面其中一种属性为11或者更高。如下所示:

<manifest ... >
    <uses-sdk android:minSdkVersion="11" ... />
    ...
</manifest>

提示: 如果你创建了一个自定义的主题,要确保它是Theme.Holo 主题的子主题。更多信息,请查看Styling the Action Bar。

就这样,现在你的应用已经使用了Theme.Holo 主题,你的所有activity中都会显示action bar了。

支持Android 2.1及以上版本(低于Android 3.0)


要在运行在Android 3.0 (低至2.1) 版本的设备上的应用上添加action bar,需要在应用中导入Android Support Library 。

作为开始,阅读Support Library Setup 文档,同时添加v7 appcompat 库 (当你下载完support包后,根据Adding libraries with resources 说明文档来导入)。

一旦你的应用项目整合了Support Library :

  1. 让你的activity继承ActionBarActivity。例如:
    public class MainActivity extends ActionBarActivity { ... }
  2. 在你的manifest 文件中,在你的<application> 元素或者独立的<activity> 元素中使用Theme.AppCompat 主题。例如:
    <activity android:theme="@style/Theme.AppCompat.Light" ... >

    提示: 如果你创建了一个自定义主题,确保它是Theme.AppCompat 主题的子主题,详情请阅读Styling the Action Bar。

现在你的运行在Android 2.1 (API level 7) 或更高版本的应用的activity中也包含了action bar了。

记住要争取额的设置你的应用支持的android API版本:

<manifest ... >
    <uses-sdk android:minSdkVersion="7"  android:targetSdkVersion="18" />
    ...
</manifest>
译者注:通过最新版ADT创建的应用,如果设置的应用最低支持Android版本为2.2或更高(低于3.0),ADT会自动导入Support包(v7 appcompat 库)。参考:http://blog.csdn.net/sweetvvck/article/details/38345671,http://blog.csdn.net/sweetvvck/article/details/38346547