Toolbar是Android V7包中的一个控件,用来代替Action Bar作为界面的头部标题栏布局。Toolbar相对于Action Bar的特点是更加灵活,可以显示在任何位置。

  首先先来看Toolbar在布局文件中的代码怎么写,实际上跟其他Android原生控件一样,只需要设置宽高、背景等属性就可以了,如果有其他需求还可以设置theme等主题属性。

  下面是一个Toolbar在布局文件中的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFFFF"> <android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" /> </RelativeLayout>

  在布局文件中写了Toolbar之后运行,Toolbar只是显示为一个有背景的长条,上面没有任何东西,这是因为我们没有将Toolbar和Activity进行绑定。我们在Activity中调用setSupportActionBar()方法就可以将Toolbar和Activity进行绑定了。代码如下:

        // 使Toolbar取代原来的ActionBar
setSupportActionBar(toolbar);

  Toolbar中可以放很多控件,看下面这张图,一目了然。

  这里列出一些为Toolbar设置属性的代码:

        // 设置Toolbar中的各个控件
toolbar.setLogo(R.mipmap.ic_launcher);
toolbar.setTitle("Toolbar title");
toolbar.setTitleTextColor(Color.RED);
toolbar.setSubtitle("Toolbar Subtitle");
toolbar.setSubtitleTextColor(Color.YELLOW);
toolbar.setNavigationIcon(android.R.drawable.ic_menu_camera);

  通过红色字的提示来设置,就可以绘制出不同的控件到Toolbar中。值得一说的是最右侧的三个图标,这三个图标实际上都是来自与一个menu文件,即这三个按钮属于同一个menu,设置了showAsAction属性为ifRoom的Item可以像途中的前两项一样,如果有足够的空间就可以显示出来;而设置了showAsAcion属性为never的Item就存放在最右边的项中,点击这一项可以弹出一个下拉列表展示其余项。menu文件中的内容如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_edit"
android:icon="@android:drawable/ic_menu_edit"
android:orderInCategory="80"
android:title="编辑"
app:showAsAction="ifRoom" /> <item
android:id="@+id/action_share"
android:icon="@android:drawable/ic_menu_share"
android:orderInCategory="90"
android:title="分享"
app:showAsAction="ifRoom" /> <item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="设置"
app:showAsAction="never" />
</menu>

  此处还需要注明一点,如果不给Activity绑定menu,Toolbar中就不会显示菜单按钮,就算最右边的三个点的图案也不会显示,只有在设置了menu之后才会显示。

  Toolbar还会和DrawerLayout、CoordinatorLayout等控件结合使用,这里给大家一些传送门,供大家参考:

  以上就是对Toolbar的简单使用的介绍,下面贴出码云上的源码,供大家参考:

DEMO地址

【Android - V】之Toolbar的使用的更多相关文章

  1. Android API 21 Toolbar Padding

    up vote117down votefavorite 44 How do I get rid of the extra padding in the new Toolbar with Android ...

  2. 【Android - V】之DrawerLayout的使用

    DrawerLayout是Android V4包中的一个布局控件,用来实现一个抽屉样式的布局. DrawerLayout通过设置子视图的layout_gravity来决定子视图停靠在屏幕的哪个边缘外侧 ...

  3. Android动态修改ToolBar的Menu菜单

    Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了. 开始上货 Menu Me ...

  4. Android——MaterialDesign之一Toolbar

    Toolbar 由于ActionBar设计原因只能存在活动的顶部,从而不能实现MaterialDesign的效果,现在推荐使用Toolbar,继承Actionbar,但是比起它更加的灵活. 设置主题: ...

  5. Android Spinner In Toolbar

    As the title of the post suggest in this tutorial we will see how to have spinner widget inside the ...

  6. android 5.X Toolbar+DrawerLayout实现抽屉菜单

    前言  android5.X新增的一个控件Toolbar,这个控件比ActionBar更加自由,可控,因为曾经的ActionBar的灵活性比較差,所以google逐渐使用Toolbar替代Action ...

  7. Android教程 -08 ToolBar的使用和主题的介绍

    ActionBar 简介 视频为本篇播客知识点讲解,建议采用超清模式观看, 欢迎点击订阅我的优酷 讲解ToolBar之前首先需要了解 ActionBar, 两者使用起来基本上一致. Android 3 ...

  8. Android开发之Android Material Design Toolbar自定义随笔

    一.自定义Toolbar的menu: 在menu下新建menu.xml文件,自定义menu的样式: <menu xmlns:android="http://schemas.androi ...

  9. android中使用toolbar

    系统默认使用的是ActionBar,就是界面中的标题栏,但是由于ActionBar设计的原因,被限定只能位于活动的顶部,从而不能实现Material Design效果,所以官方建议使用Toolbar替 ...

随机推荐

  1. mysql主要应用场景 转载

    前言 据说目前MySQL用户已经达千万级别了,其中不乏企业级用户.可以说是目前最为流行的开源数据库管理系统软件了.任何产品都不可能是万能的,也不可能适用于所有的应用场景.那么MySQL到底在什么场景下 ...

  2. ES 中文分词

    一.大名鼎鼎的中文插件IK的安装配置 1. 在插件目录中建立IK的目录 mkdir $ES_HOME/plugins/analysis-ik 2. 下载IK 的类库jar 文件到IK目录 cd $ES ...

  3. 原生JavaScript 获取下一个/上一个同胞元素

    看JavaScript遇到的问题,研究了下 获取上一个或者下一个同胞元素,使用很多人会立马想到JQuery  prev() 和 next() 的确非常方便.那么原生的JavaScript该怎么获取 上 ...

  4. 使用 fn 标签 解决字数过多时用省略号代替 .............................

    list列表单条记录某字段大于10就后面添加省略号(如:内容只是显示开始的10个字,后面的用省略号代替) 在list列表中单条记录某字段大于10就后面添加省略号, 首先引入 jstl标签: <% ...

  5. Android Activity 管理

  6. 控制器view加载

    出自李明杰讲课视频

  7. python使用pyapns进行ios推送消息

    Pyapns 提供了通用的Apple Push Notification Service (APNS).该解决方案使用了开源的Twisted server,支持原生的Python和Ruby API. ...

  8. <meta http-equiv="pragma" content="no-cache"/>-备

    <meta http-equiv="pragma" content="no-cache"/> 网页中常常看见有这样的标记,他们是清浏览器缓存用的啊, ...

  9. 10300 - Ecological Premium

    Problem A Ecological Premium Input: standard input Output: standard output Time Limit: 1 second Memo ...

  10. HttpRuntime类的缓存以及redis,memercache

    http://www.cnblogs.com/kissdodog/archive/2013/05/07/3065208.html