Toolbar是作为5.0之后替代ActionBar的一个控件,平时也是会经常的使用toolbar这个东西,但是也只是基本的使用,太深入详细的功能也没有去尝试,最近抽时间做了一个详细的学习整理,做一个记录.
简单使用
如果像使用toolbar,首先要把actionbar干掉,像这样
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
这个可以加在applaction标签,这样全局没有toolbar了,或者指定activity,这样这个活动就没有toolbar了
然后,这就是一个最简单的toolbar
然后是运行效果图
图中的标题是通过xml设置,或者java设置的
app:title="这是一个toolbar"
toolbar.setTitle("一个丑陋的标题");
其他属性
上面就是这个东西的简单使用,但是效果没法看的..再来使用一下他的其他属性
backgroud="#f00" 这个不用说,设置背景颜色
app:titleTextColor="#fff" 标题颜色
app:subtitleTextColor="#55000000" 小标题颜色
subtitle="小标题" 小标题
logo logo...
app:navigationIcon="@mipmap/back" 导航图标
然后效果图如下
menu的设置
我们先搞一个菜单出来,注意,菜单有一个属性:
app:showAsAction 然后他有这么几个可选值
1、always:使菜单项一直显示在ToolBar上,优先级最高,加入你有10个menu,他会全都放到上面直到放不下为止,包括标题等都会被挤掉(菜单键不会) ,而且如果你为这个menu设置了icon,他会有限限时icon,没有icon的话会限时字
2、ifRoom:如果有足够的空间,这个值会使菜单项显示在ToolBar上。
3、never:使菜单项永远都不出现在ToolBar上,在…的子项中显示。
4、withText:使菜单项和它的图标,菜单文本一起显示。
然后在activity中重写
然后看效果
然后必须要设置点击事件
这样toolbar的菜单就基本可以使用了,但是还有一些细节设置
其他问题
1,三个丑陋的黑点怎们改变
2,我想像微信一样修改子菜单的样式怎们搞?
这个主题的是直接继承ThemeOverlay.AppCompat.Dark,是支持包的一个主题
然后就变了效果
3,我想修改气泡弹出的位置怎们搞?
4然后我们突然发现子菜单没有图标,神们鬼?
5,这种效果怎们做?
toolba是继承自viewGroup的一个子类,请在他里面放一个textview,然后居中即可.复杂的布局同理
这些差不多就是toolbar的一些使用了,这是一个定制性非常高的控件,早日替换actionbar