前言
本案例,先上效果图:在2015年的Google I/O大会上推出Design Support库,这个库讲Material Design 中最具代表性的一些控件和效果进行了封装,使得开发者在即使不了解Material Design的情况下也能轻松地将自己的应用Material华。这篇博文就说讲解其中一个 ToolBar的控件,我们之前对于ActionBar是比较熟悉的,但是大多数开发中都是将其隐藏掉了,因为其自己身设计上限定位于活动的顶部,不能实现一些Material效果,所以官方一级不建议使用了。相比之下,Toolbal的强大之处在于,它不仅继承了ActionBar的所有功能,而且具备灵活性,可自由搭配其他控件完成Material效果。接下来手把手教新手如何使用,并抽象成类在项目中使用。
一、首先定义Style,做为整个项目的基本风格
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
colorPrimary : 标题栏的背景色
colorPrimaryDark: 状态栏的背景色
colorAccent : 控件效果的背景色
二、接下里在布局中使用v7.widget.Toolbar控件 替代 ActionBar 在活动中显示
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:id="@+id/toolbar"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
</LinearLayout>
上面是布局文件中的代码:这里ToolBard单独设置了Theme主题,这是因为我们的基本style是淡色(Light)的主题,因此Toolbar现在也是淡色主题,而Toolbar的各种元素会自动使用深色系,去区分主题颜色,之前ActionBar的文字