浅谈MaterialDesign之toolbar的简单使用

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("zxxZXX");
    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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值