setTheme colorprimary在自定义工具栏中不作为背景使用?

时间:2017-03-12 10:34:04

标签: android xml android-layout android-studio android-xml

我有一个我刚添加的自定义工具栏。

<?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="@color/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark">

    </android.support.v7.widget.Toolbar>

请注意我将背景设置为colorPrimary。

在style.xml中我有两种风格:

   <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="Yellow" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#ffff00</item>
        <item name="colorPrimaryDark">#000000</item>
        <item name="colorAccent">#ffff00</item>
    </style>

我的color.xml

<resources>
    <color name="colorPrimary">#000</color>
    <color name="colorPrimaryDark">#fff</color>
    <color name="colorAccent">#000</color>
</resources>

我使用setTheme:

更改活动中的颜色
setTheme(colorId);

它的工作原理,除了背景颜色总是黑色,即使我将setTheme设置为黄色。

任何想法为什么?

1 个答案:

答案 0 :(得分:2)

以下代码覆盖了工具栏的背景颜色

android:theme="@style/ThemeOverlay.AppCompat.Dark" 

。 从工具栏中删除android:theme属性然后它将起作用。

要更改textcolor,请按照以下代码进行操作:

<style name="CustomTextColor" parent="ThemeOverlay.AppCompat.Light">
    <item name="android:textColor">Your Text Color</item>
</style>

现在将主题设置为工具栏:

app:theme="@style/CustomTextColor"

希望这有帮助。