随着Google推出Material Design设计理念(其中包含ActionBar的升级版————Toolbar),ActionBar逐渐被Toolbar取代,但ActionBar和Toolbar并不是独立关系,要使用新的Toolbar还是要跟ActionBar扯上一点关系的,Toolbar的一些基本配置项里面包含了ActionBar的影子,而这些基本配置项对于掌握Toolbar的用法是至关重要的,今天把关于ActionBar的重要知识点总结下来,相信会对Toolbar的使用有所帮助。
ActionBar的主要功能
- 显示选项菜单的菜单项(将菜单显示成Action Item)
- 使用程序图标作为Back键
- 提供交互式的View作为Action View
- 提供基于Tab的导航方式,可用于切换多个Fragment
- 提供基于下拉的导航方式
ActionBar的用法
1、添加ActionBar
- API 11以下的程序:需要引用v7的包,在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,想要实现ActionBar的类继承ActionBarActivity
- API 11及以上的程序:在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,继承Activity即可
2、控制ActionBar的显示/隐藏
public class Test extends Activity{
public void showBar(){
ActionBar bar = getActionBar();
bar.show();
}
public void hideBar(){
ActionBar bar = getActionBar();
bar.hide();
}
}
3、显示菜单选项(Toolbar相同)
Android已不再强制要求手机必须提供MENU按键,这样可能导致用户无法大点选项菜单,所以Android提供ActionBar作为解决方案:
Android 3.0后,在设置MenuItem时,可以使用“android:showAsAction”或setShowAsAction(int actionEnum),使菜单选项显示的ActionBar的左侧。
该方法中的参数用来控制MenuItem该如何显示在ActionBar中,这里就不列举了。
4、启用程序图标导航(Toolbar相同)
- setDisplayHomeAsUpEnabled(boolean showHomeAsUp):设置是否将应用程序图标变成可以点击的图标,并在图标上添加一个向左的箭头
- setDisplayOptions(int options):通过传入int类型常量来控制ActionBar的显示选项
- setDisplayShowHomeEnabled(boolean showHome):设置是否显示应用程序的图标
- setHomeButtonEnabled(boolean enable):设置是否将应用程序图标变成可点击的按钮
5、添加ActionView
有如下几种方式:
- 定义Action Item时使用android:actionViewClass属性指定Action View的实现类
- 定义Action Item时使用android:actionLayout属性指定Action View的视图资源