通常情况加我们需要与toolbar标题统一的颜色,比如白色,那么需要在布局文件中的toolbar空间中再添加两行样式代码即可:
<android.support.v7.widget.Toolbar android:id="@+id/main_toolbar" style="@style/Toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:minHeight="?attr/actionBarSize" app:contentInsetStart="0dp" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
app:popupTheme——有时候我们有需求:ActionBar文字是白的,ActionBar Overflow弹出的是白底黑字让ActionBar文字是白的,那么对应的theme肯定是Dark。可是让ActionBar弹出的是白底黑字,那么需要Light主题。这时候popupTheme就派上用场了。android:theme 与app:theme——在AppCompat v21里,提供了一个快速方便的方法设置Toolbar的主题,使用app:theme。而新版本22.1.x中,AppCompat 允许对 Toolbar 使用 android:theme代替 app:theme。最好的一点是:它会自动继承父视图的theme ,并且兼容所有APIv11以上的设备。
例如下面
<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <View android:layout_width="match_parent" android:layout_height="24dp"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="#ffF5F5F5" app:layout_scrollFlags="scroll" app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/AppTheme.PopupOverlay"> <TextView android:id="@+id/toolbar_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:singleLine="true" android:text="编辑" android:textColor="@color/left_title" android:textSize="18sp" /> <TextView android:id="@+id/toolbar_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:singleLine="true" android:text="自选" android:textColor="@color/background_title" android:textSize="20sp" /> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout>
自定义主题文件如下
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"> <!-- 设置Menu菜单的背景色 --> <item name="android:itemBackground">@color/left_title</item> <!-- 设置Menu菜单的字体颜色 --> <item name="android:textColorPrimary">@color/left_title</item> <item name="colorControlNormal">@color/left_title</item><!-- 主要是这个起作用,修改默认返回键的颜色--> <!-- 设置Menu窗口不覆盖Toolbar视图 --> <item name="overlapAnchor">false</item> </style>