转载请注明出处:http://blog.csdn.net/cyp331203/article/details/44922863
Action Bar是app应用顶部的一个方形区域,不一定总会显示(如全屏Theme时),它属于窗口的一部分,有点类似于windows的窗口的标题栏,如下图所示:
ActionBar简要介绍:
如上图所示,标题栏一般会有三类按钮:
1、可以称为home区,这里有一个标识app的按钮,这个按钮默认不被激活,图片显示默认跟app的图标一致
2、可以称为按钮区,显示在按钮区的多个标题栏按钮
3、“更多”按钮,点击可以下拉出隐藏的标题栏按钮,俗称:"overflow"
需要明确的一点是:
ActionBar的API最早是在Android 3.0(API Level 11)的时候加入Android中的,但是我们也可以在Android 2.1(API Level 7)以上的版本使用它,只是需要加入支持包,也就是通常说的 v4 support library和 v7 support library
一般来说,为了兼容性考虑,在写应用的时候,都会使用兼容性包里的ActionBar相关API,而不会去使用系统自带的,所以后面的部分默认都是基于V4和V7包中的内容来介绍。
在导入要使用兼容性包中的ActionBar,我们的MainActivity或者其他XxxActivity就不能在继承自Activity了,需要换成:ActionBarActivity,然后还需要在清单文件中,换成AppCompat主题或者其子主题,关于主题可以看这一篇ActionBar主题颜色:
拿到ActionBar对象:
public class MainActivity extends ActionBarActivity
<activity android:theme="@style/Theme.AppCompat.Light" ... >
然后,可以通过下面一句代码,拿到ActionBar的对象:
ActionBar mActionBar = getSupportActionBar();
然后可以调用下面两句,让整个actionBar显示或者隐藏:
mActionBar.hide();
mActionBar.show();
激活home区按钮:
但是单单是拿到这个对象,并没什么用,还是不能点击,需要做进一步处理,这里类似于Button的使能设置,setEnable:mActionBar.setHomeButtonEnabled(true);
mActionBar.setDisplayShowHomeEnabled(true);//这两句就可以让actionBar的图标可以响应点击事件
mActionBar.setDisplayHomeAsUpEnabled(true);//这一句主要用于后面返回效果,后面会讲