如果是支持android3.0及以上版本只需要在minifest里面设置就会默认支持ActionBar了
<manifest ... >
<uses-sdk android:minSdkVersion="11" ... />
...
</manifest>
那些直接出现在ActionBar中的按钮为action buttons,安排不下或者不够重要的的操作被隐藏在action overflow中;
在XML中指定操作
所有的条目都被定义在menu资源中;
res/menu/main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 搜索, 应该作为动作按钮展示-->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom" />
<!-- 设置, 在溢出菜单中展示 -->
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>
为ActionBar添加操作
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 为ActionBar扩展菜单项
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
为操作按钮添加点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// 处理动作按钮的点击事件
switch (item.getItemId()) {
case R.id.action_search:
openSearch();
return true;
case R.id.action_settings:
openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
为下级Activity添加向上按钮
<application ... >
...
<!-- 主 main/home 活动 (没有上级活动) -->
<activity
android:name="com.example.myfirstapp.MainActivity" ...>
...
</activity>
<!-- 主活动的一个子活动-->
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- meta-data 用于支持 support 4.0 以及以下来指明上级活动 -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
</application>
自定义ActionBar的风格
可以给整个应用设置一个主题或者给单独的activity设置主题
<application android:theme="@android:style/Theme.Holo.Light" ... />
自定义背景
通过重写ActionBarStyle来修改其中的选项来设置背景
<style name="SecondActivityTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
</style>