ActionBar的各种基础操作:
添加或者移除actionBar:
添加:
在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了,而使用Eclipse创建的项目自动就会将Application的theme指定成Theme.Holo,所以ActionBar默认都是显示出来的。
移除:移除ActionBar的话通常有两种方式,一是将theme指定成Theme.Holo.NoActionBar,表示使用一个不包含ActionBar的主题,二是在Activity中调用以下方法:ActionBar actionBar = getActionBar();
actionBar.hide(); //再次显示则是actionBar.show();
<span style="white-space:pre"> </span>actionBar.setDisplayShowTitleEnabled(false); //隐藏title
actionBar.setDisplayUseLogoEnabled(true); //隐藏logo or 显示 logo覆盖在icon之上
actionBar.setDisplayShowHomeEnabled(true); //使左上角图标是否显示,如果设成false,则没有程序图标,仅仅<span style="white-space:pre"> </span>//一个标题,否则,显示应用程序图标,
actionBar.setDisplayHomeAsUpEnabled(true); //显示图标导航功能(返回键 R.id.home)给左上角图标的左边加上一个返回的图标
在manifest文件中相应activity下用 android:logo属性指定actionBar的图标,使用android:label指定actionBar的标题。
添加Action按钮则是在menu中添加item:
例:
- <item
- android:id="@+id/action_compose"
- android:icon="@drawable/ic_action_compose" //action图标
- android:showAsAction="always" //always 总是显示在actionbar,ifRoom:有空间才显示,never
- //永远不显示,一直在overflow
- android:title="@string/action_compose"/> //action按钮的文字显示
重写onCreateOptionMenu();加载该menu文件。
重写onOptionItemSelected(),响应点击事件,
添加actionProvider
和action view类似,action provider亦可以将一个action按钮替换成一个自定义的布局,但是action provider 能够控制事件的所有行为,并且还可以在点击的时候显示子菜单,
步骤:
a) 先在<item> 标签中指定一个android:actionProviderClass="" //可以通过继承ActionProvider创建自己的provider,亦可以使用android内置的各种provider,
b)自定义provider,需重写onPrepareSubMenu()确定provider的子菜单选项以及hasMenu(),
添加导航Tabs
a) 首先创建实现了ActionBar.TabListener接口的类,
b) 创建各个Tab页对应的fragment,
c) actionBar设置为Tab模式:actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
d) 添加Tab,
e) 在styles中修改theme相应属性,改变actionBar各部分颜色。