1. 概述
在谷歌提出 material design 之后,终于推出了 android.support.design 这个官方的material design库,之前也是大概使用没有正式去看他的源码,趁着最近比较有空,详细对这material design的一些新的东西使用,其实不算新的东西,前几年一直没被接受。大概是去年很多大的公司已经开始接受这个绚丽的效果,比如饿了么,美团,淘宝等等,话不多多进入主题
2.Toolbar是什么
Toolbar是什么?大概说一下它的官方介绍。Toolbar是应用的内容的标准工具栏,可以说是Actionbar的升级版,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯上关的。相比Actionbar Toolbar最明显的一点就是变得很自由,可随处放置,因为它是作为一个ViewGroup来定义使用的,所以单纯使用ActionBar已经稍显过时了,它的一些方法已被标注过时。
3.Toolbar的使用
我们先看看效果图和说明图
因为app本身自带有一个actionbar所以我们首先要去掉自带的actionbar,有很多种解决方案我就讲其中一种,到样式style.xml中然后配置文件中记得引用
现在再来看看我们要实现的效果图方法名
我们先在res下建一个menu文件夹并创建一个菜单menu_main.xml文件,先了解xml中的会用到的属性后我们再来写代码,
我们重点说说orderInCategory和showAsAction
showAsAction主要是针对菜单的显示起作用的
always:总是显示在界面上
never:不显示在界面上,只让出现在右边的三个点中
ifRoom:如果有位置才显示,不然就出现在右边的三个点中
Android:orderInCategory="100" 设置优先级,值越大优先级越低
我们开始写代码了,代码上都有标注我直接贴代码,注意的一点就是设置setNavigationIcon(R.mipmap.back);一定得放在setSupportActionBar(toolbar);之后
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setLogo(R.mipmap.yangla);//设置logo toolbar.setTitle("ZXX"); toolbar.setTitleTextColor(getResources().getColor(R.color.baise));//设置主标题颜色 toolbar.setSubtitle("zxx的ZXX"); toolbar.setSubtitleTextColor(getResources().getColor(R.color.baise));//设置副标题颜色 setSupportActionBar(toolbar);//同步替代actionbar //一定得放在toolbar的 setSupportActionBar(toolbar);后面才生效,一般设置返回键或者放在前面的功能键 toolbar.setNavigationIcon(R.mipmap.back); toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.menu1: Snackbar.make(toolbar,R.string.show1,Snackbar.LENGTH_LONG).show(); break; case R.id.menu2: Snackbar.make(toolbar,R.string.show2,Snackbar.LENGTH_LONG).show(); break; case R.id.menu3: Snackbar.make(toolbar,R.string.show3,Snackbar.LENGTH_LONG).show(); break; case R.id.menu4: Snackbar.make(toolbar,R.string.show4,Snackbar.LENGTH_LONG).show(); break; } return true; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) {//把menu中的布局加载进来 getMenuInflater().inflate(R.menu.menu_main2,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) {//NavigationIcon的监听事件 if(item.getItemId() == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); }
到这里就完毕了,给学习记录下来,也分享我的学习心得,希望能帮助到你,如果有需要代码到github下载 https://github.com/zhangxiaoxiaodezhanghao/toolbar.git