Toolbar是我看material design内容的第一个

官方文档:https://developer.android.com/reference/android/support/v7/widget/Toolbar.html

这是用来替代ActionBar,其实就是状态栏下面的标题栏。

想要使用ToolBar,需要隐藏原来的ActionBar,这个可以在主题中修改,在values/styles.xml中做出如下修改:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

或者:

 <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">

其中Theme.AppCompat.Light.NoActionBar代表淡色主题,Theme.AppCompat.NoActionBar表示深色主题。

在布局文件xml中这样写:

 1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:app="http://schemas.android.com/apk/res-auto"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent">
 5
 6     <android.support.v7.widget.Toolbar
 7         android:id="@+id/toolbar"
 8         android:layout_width="match_parent"
 9         android:layout_height="?attr/actionBarSize"
10         android:background="?attr/colorPrimary"
11         android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
12         app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
13
14 </FrameLayout>

xmlns:app指定了新的命名空间,是因为material design是android5.0之后才出现的,有一些属性5.0以前的系统并不存在,为了兼容以前的系统就使用app:popupTheme而不是android:popupTheme。

popupTheme:指定的是弹出 的菜单项的主题。

然后是java代码:

1     protected void onCreate(Bundle savedInstanceState) {
2         super.onCreate(savedInstanceState);
3         setContentView(R.layout.activity_main);
4         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
5         setSupportActionBar(toolbar);
6     }

这样就能看到一个最简单的Toolbar:

然后是Toolbar的一些设置了,

1、改变Toolbar的颜色,在values/styles.xml中有这样一下值:

1     <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
2         <!-- Customize your theme here. -->
3         <item name="colorPrimary">@color/colorPrimary</item>
4         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
5         <item name="colorAccent">@color/colorAccent</item>
6     </style>

colorPrimary就代表标题栏的颜色,colorPrimaryDark代表标题栏的颜色,colorAccent代表一些控件的颜色,更多的就是下图这样,图片来源见水印吧。

对于具体的颜色的值,就是colorPrimary、colorPrimaryDark、colorAccent颜色的设定在values/colors.xml中可设定:

1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3     <color name="colorPrimary">#3F51B5</color>
4     <color name="colorPrimaryDark">#303F9F</color>
5     <color name="colorAccent">#FF4081</color>
6 </resources>

2、添加菜单项和点击事件

先在res里新建一个menu文件夹,然后创建一个menu.xml,建立菜单的布局:

 1 <menu xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:app="http://schemas.android.com/apk/res-auto">
 3
 4     <item
 5         android:id="@+id/backup"
 6         android:icon="@drawable/ic_backup"
 7         android:title="Backup"
 8         app:showAsAction="always"/>
 9     <item
10         android:id="@+id/delete"
11         android:icon="@drawable/ic_delete"
12         android:title="Delete"
13         app:showAsAction="ifRoom"/>
14     <item
15         android:id="@+id/settings"
16         android:icon="@drawable/ic_setting"
17         android:title="Settings"
18         app:showAsAction="never"/>
19 </menu>

解释一下app:showAsAction属性,它指定了这个菜单项是在弹出的菜单中,还是在标题栏中变成一个图标,always就是永远都显示在Toolbar上,ifRoom表示如果屏幕空间足够就会显示,不够的话就显示在菜单中,never就永远的显示在菜单中,
然后是java代码,其实就两个方法需要写一下先是加载这个菜单布局:

   public boolean onCreateOptionsMenu(Menu menu){getMenuInflater().inflate(R.menu.toolbar,menu);return true;}

然后是点击事件的设置:

    public boolean onOptionsItemSelected(MenuItem item){switch (item.getItemId()){case R.id.backup:Toast.makeText(MainActivity.this,"backup",Toast.LENGTH_SHORT).show();break;case R.id.delete:Toast.makeText(MainActivity.this,"delete",Toast.LENGTH_SHORT).show();break;case R.id.settings:Toast.makeText(MainActivity.this,"delete",Toast.LENGTH_SHORT).show();break;default:break;}return true;}

3、添加title、subtitle、logo、导航栏图标

这里就直接修改布局文件里的属性就好了,都不用解释什么,想修改什么翻翻官方文档就好了:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="?attr/colorPrimary"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"app:title="这是标题"app:subtitle="这是副标题"app:logo="@drawable/ic_logo"app:navigationIcon="@drawable/ic_action_name"app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/></FrameLayout>

效果如下:

转载于:https://www.cnblogs.com/xxbbtt/p/7468834.html

android ——Toolbar相关推荐

  1. android toolbar控件,Android Toolbar控件

    1. Toolbar类 Toolbar是替代ActionBar的产物,低版本可以使用v7兼容包,使用Theme.AppCompat主题,并添加配置. false true 2. Toolbar配置 主 ...

  2. Android Toolbar设置向上箭头,标题等

    Android Toolbar设置向上箭头,标题等 标签: android布局 2016-07-25 22:58 1163人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得 ...

  3. 最详细的 Android Toolbar 开发实践总结一

    最详细的 Android Toolbar 开发实践总结 2016-02-25    分类:Android开发.编程开发.首页精华12人评论     来源:D_clock 分享到:更多12 过年前发了一 ...

  4. Android Toolbar 居中

    Android Toolbar封装 1.QToolbar是什么 标题栏控件,基于Toolbar控件封装 有返回按钮 左标题 居中标题 子标题 右侧菜单 优势: 继承于Toolbar,Toolbar的A ...

  5. Android Toolbar配合menu使用详解

    Android Toolbar配合menu使用详解 Toolbar使用 普通menu使用 上下文menu使用: PopupMenu菜单: 历史上的今天(2021.3.5): 1898年3月5日,周恩来 ...

  6. Android - toolbar navigation 样式

    1.修改title 边距 修改边距使用系统的app属性来引入使用,即: xmlns:app="http://schemas.android.com/apk/res-auto" 1 ...

  7. android toolbar 开发总结

    1.如何设置右边菜单距离右边的距离 在xml里面 <android.support.v7.widget.Toolbarxmlns:android="http://schemas.and ...

  8. Android toolbar menu 字体点击样式

    今天在做toolbar的时候,右边的菜单的点击事件,就是文字,然后文字的样式,文字的大小,文字的颜色,高了半天.最后发现,文字点下去之后是有样式的,也就是按下去有阴影. 哥哥的耐心好,就知道这不是问题 ...

  9. Android Toolbar Padding

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在API version 21 (the support library),如何正常使用Toolbar 这是常规式布局出来的Toolbar,我设置 ...

  10. Android ToolBar的使用

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/64130211 本文出自[赵彦军的博客] 前言 ToolBar的出现是为了替换之前的 ...

最新文章

  1. Node.js进击基础一(5-11事件模块)
  2. 2021-06-082021年春季学期-信号与系统-第十五次作业-第四小题参考答案
  3. wcf系列学习5天速成——第五天 服务托管
  4. 区块链如何应用于保险行业
  5. 26. 删除排序数组中的重复项 golang
  6. Hadoop YARN:调度性能优化实践
  7. 在 Google Earth 上看新闻
  8. maven打包失败:自定义项目工具类打包给其他微服务使用
  9. Axure中SVG矢量图标的使用方法
  10. Android美化插件,KWGT桌面插件美化
  11. 乞丐一句话感动12亿人
  12. 虚拟机与主机之间直接复制粘贴文件(最新详细版)
  13. phoenix查不到数据_Phoenix查询测试经验总结
  14. 论文阅读-社交媒体上的谣言检测:数据集、方法和机会
  15. 数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化
  16. 办公自动化系统OA学习要点
  17. IT行业的发展走向趋势
  18. NIH发布包含10600张CT图像数据库 为AI算法测试铺路
  19. 专访邦盛科技CEO王新宇:实时智能决策驱动“热数据” 价值绽放 | 爱分析访谈
  20. 读书笔记 - 学会写作: 五个吸引人的情节套路

热门文章

  1. 社保必须交满15年才能享受吗?
  2. 猫连接路由器路由下连七台电脑,为啥每台电脑手动设ip才有网?
  3. 养老金总额和个人账户本息总额啥区别,退休后按照哪个账户计算养老金呢?
  4. 手机充电全部用完充好还是有空就充好?
  5. 赚钱有捷径吗?为什么有的人赚钱很容易
  6. 七类常见的兼职骗局,你需要知道
  7. 什么样的人适合做合伙人?
  8. i59400f能带动2070s吗?
  9. When we first heard of Linux
  10. Qt4_用DOM读取XML