ActionBar之我的记录

阳念
2023-12-01

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:
例:
  1. <item  
  2.         android:id="@+id/action_compose"         
  3.         android:icon="@drawable/ic_action_compose"           //action图标  
  4.         android:showAsAction="always"       //always 总是显示在actionbar,ifRoom:有空间才显示,never
  5.      //永远不显示,一直在overflow
  6.         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各部分颜色。



 类似资料: