1、Action Bar隐藏
如果想整个程序没有Action Bar,把Application的theme设置成NoActionBar即可,如果只是想某个activity没有Action Bar,把Activity的theme设置成NoActionBar即可。

2、Java隐藏显示
actionBar = getSupportActionBar(); //获取ActionBar动作栏action_show = (Button) findViewById(R.id.actionBar_show); //获取显示按钮action_hide = (Button) findViewById(R.id.actionBar_hide); //获取隐藏按钮action_show.setOnClickListener(l); //为显示按钮设置监听事件action_hide.setOnClickListener(l); //为隐藏按钮设置监听事件}View.OnClickListener l = new View.OnClickListener() { //创建一个新的监听事件l@Overridepublic void onClick(View v) {switch (v.getId()) { //根据选择按钮的id判断case R.id.actionBar_show:actionBar.show(); //显示ActionBar动作栏break;case R.id.actionBar_hide:actionBar.hide(); //隐藏ActionBar动作栏break;}}};
3、添加 Action Item
3.1、添加menu.xml
app:showAsAction:用于设置是否显示在bar,还是溢出菜单。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><itemandroid:id="@+id/search"android:icon="@drawable/search"android:title="@string/search"app:showAsAction="always"></item><itemandroid:id="@+id/bell"android:icon="@drawable/bell"android:title="@string/bell"app:showAsAction="always"></item><itemandroid:id="@+id/settings"android:title="@string/settings"app:showAsAction="ifRoom"></item><itemandroid:id="@+id/about"android:title="@string/about"app:showAsAction="never"></item>
</menu>
3.2、重写onCreateOptionsMenu方法,解析菜单
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater=getMenuInflater(); //实例化一个MenuInflater对象inflater.inflate(R.menu.menu,menu); //解析菜单文件return super.onCreateOptionsMenu(menu);}
4、添加Action View

4.1、添加menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><itemandroid:id="@+id/search"android:title="@string/search"app:actionViewClass="android.support.v7.widget.SearchView"//自带的search Viewapp:showAsAction="always"></item><itemandroid:id="@+id/img1"android:title="@string/img1"app:actionLayout="@layout/img_message"//img_message是一个布局文件名app:showAsAction="always"></item><itemandroid:id="@+id/img2"android:title="@string/img2"app:actionLayout="@layout/img_add"app:showAsAction="always"></item>
</menu>
4.2重写onCreateOptionsMenu方法,解析菜单
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//隐藏ActionBar中显示的标题getSupportActionBar().setDisplayShowTitleEnabled(false);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater=getMenuInflater(); //实例化一个MenuInflater对象inflater.inflate(R.menu.menu,menu); //解析菜单文件return super.onCreateOptionsMenu(menu);}
5、Action Bar的Tab导航功能

5.1、创建5个Fragment和相应的类


5.2、继承android.support.v7.app.ActionBar.TabListener实现各标签页的切换
public class MyTabListener implements android.support.v7.app.ActionBar.TabListener {private android.support.v4.app.Fragment fragment; //定义Fragmentprivate final Activity activity; //定义Activityprivate final Class aClass; //定义Classpublic MyTabListener(Activity activity, Class aClass) { //添加构造函数this.activity = activity;this.aClass = aClass;}@Overridepublic void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {//判断碎片是否初始化if (fragment == null) { //如果没有初始化,将其初始化fragment = Fragment.instantiate(activity, aClass.getName());ft.add(android.R.id.content, fragment, null);}ft.attach(fragment); //显示新画面}@Overridepublic void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {if (fragment != null) {ft.detach(fragment); //删除旧画面}}@Overridepublic void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {}
}
5.3、设置ActionBar为选项卡模式
ActionBar actionBar=getSupportActionBar(); //获取ActionBaractionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //设置ActionBar为选项卡模式actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); //隐藏标题栏actionBar.addTab(actionBar.newTab().setText("词典"). //将标签页添加ActionBar中setTabListener(new MyTabListener(this, Fragment1.class)));actionBar.addTab(actionBar.newTab().setText("百科"). //将标签页添加ActionBar中setTabListener(new MyTabListener(this, Fragment2.class)));actionBar.addTab(actionBar.newTab().setText("翻译").将标签页添加ActionBar中setTabListener(new MyTabListener(this, Fragment3.class)));actionBar.addTab(actionBar.newTab().setText("发现").//将标签页添加ActionBar中setTabListener(new MyTabListener(this, Fragment4.class)));actionBar.addTab(actionBar.newTab().setText("我的").//将标签页添加ActionBar中setTabListener(new MyTabListener(this, Fragment5.class)));
6、实现层级导航
6.1、在子类的OnCreate方法中判断是否存在父Activity,不为空显示导航图标
if (NavUtils.getParentActivityName(FriendsActivity.this) != null) {getSupportActionBar().setDisplayHomeAsUpEnabled(true); //显示向左的箭头图标}
6.2、在AndroidManifest.xml文件中的子activity中添加如下代码来添加父activity
<meta-dataandroid:name="android.support.PARENT_ACTIVITY"android:value=".MainActivity" />









