ToolBar的美化

Posted on 2017-07-22 19:18  番茄番茄  阅读(176)  评论(0编辑  收藏  举报

 

谷歌提出的 Material Design,字面上的意思就是材料的绘制(我理解为就是怎么界面做的好看),但是他还有属于自己的空间和效果, 它提供了一个Design Support库,对一些常用的效果和控件进行封装。

使用Material Design 就要隐藏掉默认的ActionBar,修改软件的主题显示样式,就在style,xml文件里面,替换掉下面这句,这句parent和面跟的就是隐藏ActionBar的主题,

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

加入ToolBar

  <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"//和原有Bar一样高
                android:background="?attr/colorPrimary"
                android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"//指定ToolBar主题
                app:layout_scrollFlags="scroll|enterAlways|snap" /><!--Toobar在APPBarlayout中添加这个属性ToolBar会跟着主题内容上滑隐藏,下划出现-->

在ToolBar上添加action按钮,在res目录,新建Directory文件夹(menu),创建一个yoolbar.xml文件,showAsAction属性是设置按钮的显示,always永远显示在Toolbar 中,屏幕空间不够则不显示,ifRoom表示屏幕有足够空间句显示,否则就显示在菜单中,nerve表示永远显示在菜单中,

注:ToolBar中的action只会显示图标。而action按钮只会显示文字。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/backup"
        android:icon="@drawable/b"
        android:title="返回"
        app:showAsAction="always" />
    <item
        android:id="@+id/delete"
        android:icon="@drawable/a"
        android:title="删除"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/settings"
        android:icon="@drawable/th_qq"
        android:title="设置"
        app:showAsAction="never" />
</menu>

在主函数中设置
并且重写onCreateOptionsMenu()方法,添加空间到ToolBar

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

 

  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.toolbar, menu);
        return true;
    }