Change both text and background color in title bar

2019-06-24 03:41发布

问题:

I build an Android app and I am trying to change the title's bar background and text colour.

In AndroidManifest.xml:

<application
    ...
    android:theme="@style/ThemeSelector"
>

In styles.xml:

<style name="ThemeSelector" parent="android:Theme.Light">
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>
</style>

<style name="WindowTitleBackground">     
    <item name="android:background">@color/titlebackgroundcolor</item>
    <item name="android:textColor">@color/titletextcolor</item>
</style>

Using this code, I am managing to change the background colour but not the text colour.

Can you explain why this code does not work?

Thank you

回答1:

<style name="ThemeSelector" parent="android:Theme.Light">
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>
    <item name="android:windowTitleStyle">@style/CustomWindowTitle</item>
</style>

<style name="WindowTitleBackground">     
    <item name="android:background">@color/titlebackgroundcolor</item>
</style>

<style name="CustomWindowTitle" parent="WindowTitle">
    <item name="android:textAppearance">@style/CustomWindowTitleText</item>
</style>

<style name="CustomWindowTitleText" parent="android:TextAppearance">
    <item name="android:textColor">@color/titletextcolor</item>
</style>

<style name="WindowTitle">
    <item name="android:singleLine">true</item>
    <item name="android:textAppearance">@style/CustomWindowTitleText</item>
    <item name="android:shadowColor">#BB000000</item>
    <item name="android:shadowRadius">2.75</item>
</style>