谷歌提出的 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; }