- 介绍
类似于ActionBar,但是不同于ActionBar只能位于活动的顶部,它的灵活性很高,可以配合其他控件来完成一些
其它Material Design 效果。 - 使用
第一步:先取消ActionBar
方式一:通过使用android中自带的主题,
Theme.AppCompat.NoActionBar(深色主题,界面主题颜色为深色,陪衬颜色为淡色)
Theme.AppCompat.Light.NoActioinBar(淡色主题,界面主题颜色为淡色,陪衬颜色为深色)
方式二:通过修改android中的主题
可以通过加上如下两句话就可以修改了,在现在主题中重写修改:
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
第二步:
在需要使用的布局中,如下书写:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
//表示高度是ActionBar的高度
android:background="?attr/colorPrimary"
//背景颜色是colorPrimary 使用系统中自己带的颜色
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
//给Toolbar设置自己的主题
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
//将Toolbar上可能弹出的菜单样式指定新的主题,
>
第三步:
在代码中使用
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
第四步:
往上面添加一些action动作
修改标题栏目上的文字内容
只需在所在的activity上面添加:
android:label="你想要的文字" //一般默认使用的是application中指定的label内容
添加一些action按钮;
先建立menu文件夹,在右击建立自己的菜单文件。
<item android:id="@+id/backup"
android:icon="@mipmap/ic_launcher"
android:title="backup"
app:showAsAction ="always"/> //这个属性表示,always表示永远显示在toolbar中,如果屏幕空间不够就不显示
<item
android:id="@+id/delete"
android:icon="@mipmap/ic_launcher"
android:title="delete"
app:showAsAction="ifRoom"/> //屏幕空间足够的情况下显示在Toolbar中,不够的话就在菜单中
<item
android:id="@+id/settings"
android:icon="@mipmap/ic_launcher"
android:title="settings"
app:showAsAction = "never" //表示永远都在菜单中,
/>
上述所示就是建立了三个action按钮。Toolbar中的action按钮只会显示图标,菜单中的action按钮只会显示文字。
将菜单文件加载出来
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar,menu); //将菜单文件加载出来
return true;
}
给菜单上action添加点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.backup:
Toast.makeText(this,"你点击了backup这个按钮",Toast.LENGTH_SHORT).show();
break;
case R.id.delete:
Toast.makeText(this,"你点击了delete这个按钮",Toast.LENGTH_SHORT).show();
break;
case R.id.settings:
Toast.makeText(this,"你点击了settings这个按钮",Toast.LENGTH_SHORT).show();
break;
}
return true;
}
- 代码中的调用
toolbar.setNavigationIcon(R.mipmap.ic_launcher);
//设置上之后可以在label左边加上一个图像icon
toolbar.setTitleTextColor(getResources().getColor(android.R.color.holo_red_dark));
//可以单独设置title的文本的颜色