Toolbar是Api21引入的一个控件,v7包含有它的控件,可兼容5.0以下系统,它是用来替代Actionbar,官方推荐Toolbar,它作为一个控件,比Actionbar更灵活也更强大。

  官方文档描述:

    

    Toolbar的组成分为5部分,分别是A navigation button,A branded logo image,A title and subtitle,One or more custom views,An action menu.

  

  Toolbar的使用:

    0.修改App使用的主题,使用没有Actionbar的主题,否则会出错。

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

    

    1.在布局文件中使用控件,注意为了兼容低版本,使用android.support.v7.widget.Toolbar.

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:id="@+id/container"
 7     tools:context="com.aellenlei.toolbardemo.MainActivity">
 8
 9
10     <android.support.v7.widget.Toolbar
11         android:id="@+id/toolbar"
12         android:layout_width="match_parent"
13         android:layout_height="wrap_content"
14         android:background="#ff0004"/>
15
16
17     <TextView
18         android:layout_width="wrap_content"
19         android:layout_height="wrap_content"
20         android:text="Hello World"
21         android:layout_below="@+id/toolbar"/>
22 </RelativeLayout>

    2.获取Toolbar对象,设置Toolbar的相关属性,

    

    3.将Toolbar添加到Actionbar位置

    4.Toolbar调用onMenuItemClick设置监听事件

  eg:

 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
 5     <item android:id="@+id/action_edit"
 6         android:title="编辑"
 7         android:orderInCategory="80"
 8         android:icon="@android:drawable/ic_menu_edit"
 9         app:showAsAction="ifRoom" />
10
11     <item android:id="@+id/action_share"
12         android:title="分享"
13         android:orderInCategory="90"
14         android:icon="@android:drawable/ic_menu_share"
15         app:showAsAction="ifRoom" />
16
17     <item android:id="@+id/action_settings"
18         android:title="settings"
19         android:orderInCategory="100"
20         app:showAsAction="never"/>
21
22 </menu>

Toolbar的Items菜单项

 1 package com.aellenlei.toolbardemo;
 2
 3 import android.os.Bundle;
 4 import android.support.design.widget.Snackbar;
 5 import android.support.v7.app.AppCompatActivity;
 6 import android.support.v7.widget.Toolbar;
 7 import android.view.Menu;
 8 import android.view.MenuItem;
 9
10 public class MainActivity extends AppCompatActivity {
11
12     private Toolbar.OnMenuItemClickListener onMenuItemClickListener = new Toolbar.OnMenuItemClickListener() {
13         @Override
14         public boolean onMenuItemClick(MenuItem item) {
15
16             switch (item.getItemId()) {
17                 case R.id.action_edit:
18                     Snackbar.make(findViewById(R.id.container), "edit", Snackbar.LENGTH_SHORT).show();
19                     break;
20                 case R.id.action_share:
21                     Snackbar.make(findViewById(R.id.container), "share", Snackbar.LENGTH_SHORT).show();
22                     break;
23                 case R.id.action_settings:
24                     Snackbar.make(findViewById(R.id.container), "setting", Snackbar.LENGTH_SHORT).show();
25                     break;
26             }
27
28
29             return true;
30         }
31     };
32
33     @Override
34     protected void onCreate(Bundle savedInstanceState) {
35         super.onCreate(savedInstanceState);
36         setContentView(R.layout.activity_main);
37
38         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
39         toolbar.setLogo(R.mipmap.ic_launcher);
40         toolbar.setTitle("title");
41         toolbar.setSubtitle("subtitle");
42         toolbar.setNavigationIcon(R.mipmap.ic_launcher);
43
44         setSupportActionBar(toolbar);
45
46
47         toolbar.setOnMenuItemClickListener(onMenuItemClickListener);
48
49     }
50
51     @Override
52     public boolean onCreateOptionsMenu(Menu menu) {
53         getMenuInflater().inflate(R.menu.main, menu);
54         return super.onCreateOptionsMenu(menu);
55     }
56
57
58 }

实例化Toolbar

   效果:

  

转载于:https://www.cnblogs.com/enjoy-coding/p/4966873.html

系统组件:工具栏Toolbar相关推荐

  1. Windows 工具栏ToolBar

    ToolBar表示一个 Windows 工具栏. ToolBar 控件用于显示可显示为标准按钮.切换式按钮或下拉式按钮的 ToolBarButton 控件.可以为按钮分配图像,方法是创建一个 Imag ...

  2. 自定义键盘组件_一文读懂!iOS系统组件的设计规范全解

    一说到组件,大部分初级设计师和中级设计师的脑海里只会蹦出弹窗.Toast及操作列表等具体的概念,没有一套属于自己的组件分类体系,这样对于视觉设计.交互设计或产品设计的系统学习来说都是不利的. iOS1 ...

  3. Android开发笔记(一百一十九)工具栏ToolBar

    Toolbar 在前面的博文< Android开发笔记(二十)顶部导航栏>中,我们学习了ActionBar的用法,可是ActionBar着实是不怎么好用,比如文字风格不能定制.图标不能定制 ...

  4. 自定义键盘组件_一文读懂!iOS系统组件的设计规范全解!

    一说到组件,大部分初级设计师和中级设计师的脑海里只会蹦出弹窗.Toast及操作列表等具体的概念,没有一套属于自己的组件分类体系,这样对于视觉设计.交互设计或产品设计的系统学习来说都是不利的. iOS1 ...

  5. 单独组件_苹果已停止对macOS Big Sur 11.0.1版本macOS系统组件的单独更新

    从macOS Big Sur 11.0.1版本开始,苹果已停止提供其macOS系统组件的单独更新版本,但直到12月16日仍在为Catalina和Moojave版本提供支持. 过去,苹果为用户提供了单独 ...

  6. adb指令禁用软件_三星等安卓手机续航差?禁用部分系统组件后提升明显

    前沿:小编只是提供一种方法,在小编实际体验中,禁用部分系统组件后续航确有提升.但这还是因人而异的,具体和自己所使用的机型有关.除此之外,这个方法也同样适用于追求简洁用机体验的朋友,毕竟像自带浏览器等软 ...

  7. [C#.NET通用权限管里系统组件]对资源权限、列表型、记录级权限、数据集权限的实现参考...

    周末出差在北京,加班休息时写写博客,把一些自己整理的权限控制的内容都进行一下有调理的整理分享给有需要参考的人.先把记录集权限如何实现的,分享给大家一下. 通用权限管理系统,可以满足各种最严格的权限配置 ...

  8. 对系统组件化接口设计的一点看法

    今天海浪分享一篇对系统组件化接口设计的一点看法.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:of ...

  9. 分布式 集群 系统组件架构_分布式跟踪系统的四个组件如何一起工作

    分布式 集群 系统组件架构 十年前,基本上只有认真思考分布式跟踪的人是学者和少数大型互联网公司. 如今,对于任何采用微服务的组织来说,它已经变成了赌注. 基本原理是公认的:微服务以令人惊讶且通常是惊人 ...

  10. 升级浏览器_升级Unity 8,优化系统组件,添加键盘手势,升级浏览器,UbuntuTouch最大的一次更新

    Ubuntu Touch OTA-12正式发布了,官方声称这是Ubuntu Touch有史以来最大的一次发布,加入了许多新功能,可以在许多支持的Ubuntu Touch设备上使用. Ubuntu To ...

最新文章

  1. android .9图片使用和一些技巧
  2. RxJava使用(四)变换
  3. ExtendHelper
  4. IIS7报“假”正式版随Server 2008发布
  5. Mysql保存是事件驱动吗_【CHRIS RICHARDSON 微服务系列】事件驱动的数据管理-5
  6. 打卡小程序源码修复登录接口
  7. unset是不能清除保存在本地电脑上的cookie的,用于session就可以(弄了半天原来是这样)...
  8. [PHP]基本排序(冒泡排序、快速排序、选择排序、插入排序、二分法排序)
  9. 敏捷开发日常跟进系列之一:燃尽图(上)
  10. 中正平和的机器人学笔记——2. 机械臂逆运动学(附MATAB代码)
  11. 使用IBM SPSS Statistics常用图表附例演示讲解
  12. Worktile Teambition 与Tower 使用对比
  13. TweenMax逐帧动画
  14. mysql基于ssm的自习室座位管理系统 毕业设计源码221118
  15. 第三阶段:1.数据分析:2.定性定量数据分析
  16. 统计字符出现的次数(输出由多到少)
  17. 怎么mac ftp服务器文件夹,mac 访问 ftp服务器文件夹权限
  18. python:实现由列表表示的队列算法(附完整源码)
  19. Cuba 获取当前登录用户
  20. 各国立法组织、立法程序、法律法规形式、信息安全涉及主管部门分析-欧盟篇

热门文章

  1. 简化生活:重构消费系统
  2. 【行业看点】量子时代的技术机遇
  3. ftp上传软件,五款ftp优秀的ftp上传软件
  4. mysql中ibd文件是很么_ibd文件怎么打开
  5. HTML+CSS实现导航条及下拉菜单
  6. 鸿蒙1004鸿蒙,第1004章 【两成】
  7. APM::Rover下GCS_MAVLink的逻辑梳理
  8. matlab中plot函数的常用颜色和线型
  9. 如何向iphone手机里导入音乐?
  10. 【论文解读 WWW 2019 | FBMA】Event Detection using Hierarchical Multi-Aspect Attention