概述
ActionBar是在Android 3.0 (API LEVEL 11) 中添加进来的, 向下版本到2.1, 则需要使用support-v7. 而2.1以下版本则需要自行实现了.
差异
Android 3.0+请参考官方文档. Android 2.1+使用时则需要注意以下几点:
-
引用support-v7
-
Activity 必须继承 android.support.v7.app.ActionBarActivity
-
定义菜单: menu.xml中, 需要使用自定义xml-namespace, 并在设置部分Item属性时使用该namespace, 如 showAsAction 属性
-
设置样式: themes.xml中, 设置style的item的name属性时, 不需要 android: 前缀
除了上述差异外, 在定义Up Navigation特性时, 也需要注意, 若调用了如下代码,:
getActionBar().setDisplayHomeAsUpEnabled(true);
/* or
* getSupportActionBar().setDisplayHomeAsUpEnabled(true);
*/
则需要在AndroidManifest.xml中设置Activity的属性, 如下:
<activity
android:name="com.example.app.ChildActivity"
android:label="@string/title_child_activity"
android:parentActivityName="com.example.app.MainActivity" >
<!-- Parent activity meta-data to support API level 4+ -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.app.MainActivity" />
</activity>
需要注意的是, API Level 16 在AndroidManifest.xml中, 新增了Activity的新属性android:parentActivityName, 来替代向下版本的meta-data.
参考资料
http://developer.android.com/training/basics/actionbar/index.html