效果图:

创建标题栏,将原本的Title隐藏,并在菜单栏中设置选项。

一、拖入一个ToolBar组件,并在res/values/styles.xml中将原本的标题栏隐藏,添加<item name="windowNoTitle">true</item>。

二、设置Logo,主标题,子标题

  1. toolbar=findViewById(R.id.toolbar);
    toolbar.setLogo(R.mipmap.ic_launcher);
    toolbar.setTitle("主标题");
    toolbar.setSubtitle("子标题");

图片自己放入mipmap里面,可以自行从网上下载。

三、设置回退键图标,当点击回退键时退出程序。

  1. toolbar.setNavigationIcon(R.mipmap.back);//设置回退键图标
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    finish();
    }
    });

四、在main.xml中ToolBar里面添加文本和按钮。

五、在MainActivity.java添加菜单栏。

  1. @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main,menu);
    return super.onCreateOptionsMenu(menu);
  2.  
  3. }

六、在res下面new-->Android Resource Directory,在resource type右侧选择menu,点击ok。

然后在menu文件夹下新建Android Resource File,取名menu_main。添加几个item。

如果让item显示在toolBar上,就设置

  1. app:showAsAction="always"

想要不显示的话,就设置

  1. app:showAsAction="never"

还可以为item添加图标显示

  1. android:icon="@mipmap/small"

七、设置当选择相应菜单时进行相应的操作。如:

  1. toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(MenuItem item) {
    String str=null;
    switch (item.getItemId()){
    case R.id.item1:
    str="您选择了菜单1";
    break;
    case R.id.item2:
    str="您选择了菜单2";
    break;
    case R.id.item3:
    str="您选择了菜单3";
    break;
    }
    Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
    return true;
    }
    });

当然要先引用toolBar。

  1. setSupportActionBar(toolbar);

一些简单的功能就学会了,其他的可以自行丰富,设置一个好看的界面。

MainActivity.java

  1. package com.example.aimee.toolbartest;
  2.  
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.support.v7.widget.Toolbar;
  6. import android.view.Menu;
  7. import android.view.MenuItem;
  8. import android.view.View;
  9. import android.widget.Toast;
  10.  
  11. public class MainActivity extends AppCompatActivity {
  12. Toolbar toolbar;
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. toolbar=findViewById(R.id.toolbar);
  19. toolbar.setLogo(R.mipmap.ic_launcher);
  20. toolbar.setTitle("主标题");
  21. toolbar.setSubtitle("子标题");
  22. // MainActivity.this.setSupportActionBar(toolbar);
  23. setSupportActionBar(toolbar);
  24. toolbar.setNavigationIcon(R.mipmap.back);//设置回退键图标
  25. toolbar.setNavigationOnClickListener(new View.OnClickListener() {
  26. @Override
  27. public void onClick(View v) {
  28. finish();
  29. }
  30. });
  31.  
  32. toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
  33. @Override
  34. public boolean onMenuItemClick(MenuItem item) {
  35. String str=null;
  36. switch (item.getItemId()){
  37. case R.id.item1:
  38. str="您选择了菜单1";
  39. break;
  40. case R.id.item2:
  41. str="您选择了菜单2";
  42. break;
  43. case R.id.item3:
  44. str="您选择了菜单3";
  45. break;
  46. }
  47. Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
  48. return true;
  49. }
  50. });
  51. }
  52.  
  53. @Override
  54. public boolean onCreateOptionsMenu(Menu menu) {
  55. getMenuInflater().inflate(R.menu.menu_main,menu);
  56. return super.onCreateOptionsMenu(menu);
  57.  
  58. }
  59. }

main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/linearLayout"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6.  
  7. <android.support.v7.widget.Toolbar
  8. android:id="@+id/toolbar"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:background="?attr/colorPrimary"
  12. android:minHeight="?attr/actionBarSize"
  13. android:theme="?attr/actionBarTheme" >
  14. <Button
  15. android:id="@+id/button"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:text="Button" />
  19.  
  20. <TextView
  21. android:textSize="28dp"
  22. android:padding="20dp"
  23. android:id="@+id/textView"
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="首页" />
  27. </android.support.v7.widget.Toolbar>
  28.  
  29. </android.support.constraint.ConstraintLayout>

menu_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto">
  4. <item
  5. android:icon="@mipmap/small"
  6. android:id="@+id/item1"
  7. android:title="编辑1"
  8. app:showAsAction="always"
  9. >
  10.  
  11. </item>
  12.  
  13. <item
  14. android:id="@+id/item2"
  15. android:title="编辑2"
  16. app:showAsAction="never">
  17.  
  18. </item>
  19.  
  20. <item
  21. android:id="@+id/item3"
  22. android:title="编辑3"
  23. app:showAsAction="never">
  24.  
  25. </item>
  26.  
  27. </menu>

styles.xml

  1. <resources>
  2.  
  3. <!-- Base application theme. -->
  4. <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  5. <!-- Customize your theme here. -->
  6. <item name="windowNoTitle">true</item>
  7. <item name="colorPrimary">@color/colorPrimary</item>
  8. <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  9. <item name="colorAccent">@color/colorAccent</item>
  10. </style>
  11.  
  12. </resources>

第三十篇-ToolBar的使用的更多相关文章

  1. Delphi 泛型(三十篇)

    Delphi 泛型(三十篇)http://www.cnblogs.com/jxgxy/category/216671.html

  2. Android UI开发第三十篇——使用Fragment构建灵活的桌面

    http://www.lupaworld.com/article-222973-1.html 当我们设计应用程序时,希望能够尽最大限度的适配各种设备,包括4寸屏.7寸屏. 10寸屏等等,Android ...

  3. Python之路(第三十篇) 网络编程:socket、tcp/ip协议

    一.客户端/服务器架构 1.硬件C/S架构(打印机) 打印机作为一个服务端,电脑连接打印机进行打印 2.软件C/S架构 互联网中处处是C/S架构 如谷歌网站是服务端,你的浏览器是客户端(B/S架构也是 ...

  4. 第三十篇 面向对象的三大特性之继承 supre()

    继承 一 .什么是继承? 类的继承跟现实生活中的父.子.孙子.重孙子的继承关系一样,父类又称基类. Python中类的继承分为:单继承 和  多继承. # 定义父类 class ParentClass ...

  5. Python之路【第三十篇】:django 模型层-多表关系

    多表操作 文件为 ---->  orm2 数据库表关系之关联字段与外键约束 一对多Book id title price publish email addr 1 php 100 人民出版社 1 ...

  6. 第三十篇:SOUI模块结构图及SOUI框架图

    模块结构图: SOUI框架图:

  7. 第三十篇、iOS开发中常用的宏

    //字符串是否为空 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str leng ...

  8. 第三十篇 玩转数据结构——字典树(Trie)

          1.. Trie通常被称为"字典树"或"前缀树" Trie的形象化描述如下图: Trie的优势和适用场景 2.. 实现Trie 实现Trie的业务无 ...

  9. JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码

    JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个 ...

随机推荐

  1. win10远程桌面连接提示身份验证错误,要求的函数不受支持的解决方案

    转自https://www.baidu.com/link?url=67JXh4h79mN47mEenuH_ElGkSh9_GdOiY-Xp9Ihw0_mQIZHrPx-HxY3EIm_nTZKPoRZ ...

  2. Prism框架研究(三)

    这一篇主要用来介绍一下基于Prism Library中的核心服务以及如何配置Container,还有一个重要的部分是如何管理各个组件之间的依赖性,下面就这些内容来做一一的介绍. 1 Prism中的核心 ...

  3. 常见IT工具软件总结

    1. 阿里云在线迁移服务 2.智能媒体管理 格式转换 业务域名管理 1. 每个业务有一个英文单词, 1. 每个 git 的命名应该是 chgg-业务英文-种类 2. 例如 chgg-plant-api ...

  4. border-color的深入理解

    .className{ width:100px;height:100px; border:100px solid; border-color: red green blue orange; } 最终的 ...

  5. h5 打开 app

    目前只支持在浏览器中打开,如果非浏览器,例如 微信 支付宝 钉钉 第三方 app 中会弹出下载页面 schemeUrl 为 和app 约定url   openApp() { /* 小希学生端 aoji ...

  6. BZOJ3638[Codeforces280D]k-Maximum Subsequence Sum&BZOJ3272Zgg吃东西&BZOJ3267KC采花——模拟费用流+线段树

    题目描述 给一列数,要求支持操作: 1.修改某个数的值 2.读入l,r,k,询问在[l,r]内选不相交的不超过k个子段,最大的和是多少. 输入 The first line contains inte ...

  7. ZOJ 1403 解密

    参考自:https://www.cnblogs.com/ECJTUACM-873284962/p/6412212.htmlSafecracker Time Limit: 2 Seconds       ...

  8. Python小练习

    1.计算x的n次方 2.计算x的阶乘 3.计算1x1 + 2x2 + 3x3 ...+ NxN之和 def fun(n): s=0 while n > 0: s = s + n*n n = n ...

  9. HDU4651 Partition 【多项式求逆】

    题目分析: 这题的做法是一个叫做五边形数定理的东西,我不会. 我们不难发现第$n$项的答案其实是: $$\prod_{i=1}^{\infty}\frac{1}{1-x^i}$$ 我们要对底下的东西求 ...

  10. Codeforces Round #530 (Div. 2) A,B,C,D

    A. Snowball 链接:http://codeforces.com/contest/1099/problem/A 思路:模拟 代码: #include<bits/stdc++.h> ...