概述
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的属性, 如下:
android:name="com.example.app.ChildActivity"
android:label="@string/title_child_activity"
android:parentActivityName="com.example.app.MainActivity" >
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.app.MainActivity" />
需要注意的是, API Level 16 在AndroidManifest.xml中, 新增了Activity的新属性android:parentActivityName, 来替代向下版本的meta-data.
参考资料