这一篇我们介绍两个相似的控件,分别是Actionbar和Toolbar。
Actionbar
Actionbar是Android3.0之后的一个重要的交互元素,Actionbar位于Activity的顶部,用于显示图标、菜单、标题,广泛用于View的交互、导航等功能。在Android3.0之后,Actionbar是默认添加的,只要你新建的Activity继承于AppCompatActivity,Actionbar是默认添加的。
我们看一下theme主题配置文件中的样式,图片来源于网络
Android3.0是默认添加Actionbar的,我们讲一下Actionbar的移除
Actionbar的移除
-
在Activity的属性中设置主题风格为NoTitleBar
例如:<activity android:theme="@android:style/Theme.NoTitleBar">
-
在代码中修改,通过在代码中调用下面一句代码,可以隐藏Actionbar
getSupportActionBar().hide();
-
注意的是:这一句是当前的Activity继承与AppcompatActivity的时候,如果是直接继承于Activity的话,需要在setContent()之前调用:
requestWindowFeature(Window.FEATURE_NO_TITLE)
介绍完Actionbar的添加和移除,下面我们来介绍一下Actionbar的使用
Actionbar的使用
1、修改Actionbar的样式
我们可以在代码中,通过调用getSupportActionBar()获取到Actionbar实例对象,然后通过相应的方法设置一些属性,Actionbar的属性设置方法有:
-
show()方法:显示Actionbar
-
setTitle(CharSequence title)方法:设置Actionbar的标题,重载方法有:setTitle(int resId)
-
setSubtitle(CharSequence subtitle)方法:设置Actionbar的字幕,重载方法有:setSubtitle(int resId)
-
setSplitBackgroundDrawable(Drawable d)方法:设置Actionbar的分隔背景
-
setStackedBackgroundDrawable(Drawable d)方法:设置Actionbar的重叠背景
-
setLogo(Drawable logo)方法:设置Actionbar的logo,重载方法是:setLogo(int resId)
-
setIcon(Drawable icon)方法:设置Actionbar的icon,重载方法是:setIcon(int resId)
-
setHomeButtonEnabled(boolean enabled)方法:设置是否允许返回按钮
-
setHomeAsUpIndicator(Drawable indicator)方法:设置显示一个返回图片
-
setHomeActionContentDescription(CharSequence description)方法,当允许的时候,设置返回上一个Activity的描述信息,重载方法是:setHomeActionContentDescription(int resId)
-
setHideOnContentScrollEnabled(boolean hideOnContentScroll)方法:设置在内容滚动的是时候是否显示Actionbar
-
setDisplayShowTitleEnabled(boolean showTitle)方法:设置是否显示标题
-
setDisplayUseLogoEnabled(boolean useLogo)方法:设置是否显示logo
-
setDisplayShowHomeEnabled(boolean showHome)方法:设置是否显示返回
-
setDisplayShowCustomEnabled(boolean showCustom)方法:设置是否显示一个自定义View
-
setDisplayOptions(int options)方法:设置显示的选项
-
setDisplayOptions(int options, int mask)方法:设置选中的选项
-
setCustomView(View view)方法:设置自定义的View,重载:setCustomView(View view, ActionBar.LayoutParams layoutParams)
-
setBackgroundDrawable(Drawable d)方法:设置背景
-
removeOnMenuVisibilityListener(ActionBar.OnMenuVisibilityListener listener)方法:移除一个可见的菜单时的监听
-
hide()方法:隐藏Actionbar
-
getTitle()方法:获取标题
简单的介绍一下Actionbar的常用方法,我们获取到Actionbar的实例之后可以调用这些方法去设置相应的属性,这里就不在做详细的代码演示了
2、添加item和overflow
将Actionbar中所有的ActionItem定义在menu中,主要讲item的几个属性:
-
title属性:设置标题
-
icon属性:设置图标
-
showAsAction属性:设置Item的显示方式,有几个值可以选择:ifRoom,当有4个或者4个以上的时候显示在overflow里面;always,总是显示所有的item;never,不会显示;withText,尽可能显示,可能显示不全;collapseActionView,折叠在一个按钮里面,点击按钮会显示,一般与ifRoom一起使用。
下面我们用一个例子讲解一下: