首页 > 解决方案 > 如何创建带有自定义颜色的文本和图标的白色工具栏?

问题描述

我必须创建一个具有自定义背景颜色(接近白色)的工具栏,并且它上面的所有元素(向上按钮、菜单按钮、标题等)也需要具有自定义颜色(所有这些都具有相同的自定义颜色)。

带有白色工具栏和深色文本的应用程序-> 答案 1 不起作用,因为它只更改状态栏,而不是工具栏,并且它仅从 API 级别 23 而不是 21 开始工作。

我当前的 styles.xml 文件如下所示:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:buttonStyle">@style/AppTheme.Button</item>
    <item name="actionBarTheme">@style/AppTheme.ActionBar</item>
</style>

<style name="AppTheme.Button" parent="Widget.AppCompat.Button">
    <item name="android:textAllCaps">false</item>
</style>

<style name="AppTheme.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/action_bar_background</item>
</style>

现在的方式我可以控制工具栏的背景颜色,但我无法更改工具栏上元素的颜色。

我不想创建自定义工具栏,因为我不想更改任何行为。

标签: androidandroid-toolbar

解决方案


我实际上设法自己解决了它。

我添加了<item name="android:textColorPrimary">@color/toolbar_element_color</item>toAppTheme.ActionBar<item name="colorControlNormal">@color/toolbar_element_color</item>to AppTheme

我的 styles.xml 文件现在看起来像这样:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="colorControlNormal">@color/toolbar_element_color</item>
    <item name="android:buttonStyle">@style/AppTheme.Button</item>
    <item name="actionBarTheme">@style/AppTheme.ActionBar</item>
</style>

<style name="AppTheme.Button" parent="Widget.AppCompat.Button">
    <item name="android:textAllCaps">false</item>
</style>

<style name="AppTheme.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/action_bar_background</item>
    <item name="android:textColorPrimary">@color/toolbar_element_color</item>
</style>

推荐阅读