Android:关于Toolbar的样式
2018-03-31 本文已影响0人
今夜相思又几许
前言
早就已经抛弃Android中的ActionBar已经很久了,现在在v7中的Toolbar已经爬坑很久了。对于它的样式,也是用到的时候才会去查一下,但是有时候百度查的时候也是很麻烦,需要很久,索性就把常用到的样式给记录下来,以备不时之需,到时可直接复制粘贴大法到自己的项目中去了。废话不多说了,GETING START!!!
常用的两种样式
设置toolbar的主题:android:theme="@style/......."
白色标题的样式
白色标题样式 overflow menu打开时 <style name="ToolbarThemeWhite" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
</style>
黑色标题的样式
黑色标题样式 overflow menu打开时 <style name="ToolbarThemeBlack" parent="@style/ThemeOverlay.AppCompat.ActionBar">
</style>
上边两种样式是黑白标题的两种样式默认的显示情况。
修改标题栏的颜色
有时候标题栏的颜色并不符合我们的要求,我们就修改下标题栏的颜色
在白色样式上进行修改,标题文字,navigation icon,overflow button,overflow menu的文字
<style name="ToolbarThemeWhite" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:textColorPrimary">#09bb07</item>
<item name="subtitleTextColor">#09bb07</item>
</style>
<item name="subtitleTextColor">#09bb07</item>
这行主要是修改副标题的字体颜色
可以看到,除了overflow menu 的背景颜色没有改变 其他的字体颜色都会改变
OverflowMenu的样式
添加OverflowMenu样式为app:popupTheme="@style/......."
Toolbar两种不同的主题,对应的OverflowMenu样式也不同。白色的对应是黑色背景、白色字体;黑色对应的是白色背景,黑色字体。
黑色背景 白色字体
<style name="ToolbarThemeWhite.OverFlowMenuTheme" parent="ThemeOverlay.AppCompat.Dark">
</style>
白色背景 黑色字体
<style name="ToolbarThemeBlack.OverFlowMenuTheme" parent="ThemeOverlay.AppCompat.Light">
</style>
注意:添加上OverflowMenu的样式后,之前修改标题栏字体颜色对菜单的字体颜色就不起作用了,需要重新在OverflowMenu的样式上定义字体颜色了
修改OverflowMenu样式
在白色标题基础上修改菜单样式 <style name="ToolbarThemeWhite.OverFlowMenuTheme" parent="ThemeOverlay.AppCompat.Light">
<!--修改菜单的字体颜色-->
<item name="android:textColor">#06bb02</item>
<!--修改菜单的背景颜色-->
<item name="android:background">#ff705e</item>
<!--修改菜单的字体大小-->
<item name="android:textSize">16sp</item>
</style>
最后,写出黑色、白色的主题和黑色、白色的菜单
toolbar主题
黑色标题
<style name="ToolbarThemeBlack" parent="@style/ThemeOverlay.AppCompat.ActionBar">
</style>
白色标题
<style name="ToolbarThemeWhite" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
</style>
popwindow样式
黑色背景
<style name="ToolbarThemeWhite.OverFlowMenuTheme" parent="ThemeOverlay.AppCompat.Dark">
</style>
白色背景
<style name="ToolbarThemeBlack.OverFlowMenuTheme" parent="ThemeOverlay.AppCompat.Light">
</style>
常用的白色标题及白色背景menu的Toolbar
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/colorPrimary"
app:navigationIcon="?attr/homeAsUpIndicator"
android:theme="@style/ThemeToolbarWhite"
app:popupTheme="@style/ThemeToolbarBlack.OverFlowMenuTheme"
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|enterAlways">
</android.support.v7.widget.Toolbar>