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地址

最新文章

  1. 不制作证书是否能加密SQLSERVER与客户端之间传输的数据?
  2. tengine + mysql + nginx + php
  3. swift项目实战FoodPin目录
  4. mongo VUE 操作
  5. raspberry pi vpn
  6. 第五周技术博客发表 web 网页开发
  7. gridview外边距
  8. iis虚拟目录引发的路径问题
  9. 使用Excel背单词-高效-简单
  10. Javascript判断数据类型与真假值隐形转换研究
  11. Jenkins持续集成环境, 如何自定义 maven 仓库
  12. μCOS-Ⅲ——临界段
  13. 173zrx个人简介
  14. web 项目:解决插入 MySQL 数据库时中文乱码问题
  15. 一文看懂Transformer内部原理(含PyTorch实现)
  16. day27-反射
  17. NSLOOKUP命令的使用方法
  18. (转载)Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码
  19. C# 读取excel用户列表过滤一个月内未收到外部邮件已离职的员工
  20. MySQL数据库(13)----忘记root用户密码解决方案【转载】

热门文章

  1. Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException 异常
  2. spring @Value(&quot;${name}&quot;)使用
  3. 深入理解Kafka必知必会(上)
  4. Python进阶函数
  5. NOIP模拟 37
  6. PTA刷题记录(3)
  7. 「CF52C」Circular RMQ
  8. .netcore利用DI实现订阅者模式 - xms
  9. HTML创建图像映射,布局,表单
  10. 3. 彤哥说netty系列之Java BIO NIO AIO进化史