I am trying to change the color of the Title Text in the ActionBar but I cannot seem to get it to work

this is my style I am trying to use

<style name="TitleColorStyle" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@android:color/white</item>
</style>

and in my app theme I use the titleTextStyle

<style name="AppTheme" parent="android:Theme.Holo.Light">

    <item name="android:windowContentOverlay">@null</item>
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
    <item name="android:actionDropDownStyle">@android:style/Widget.Holo.Spinner</item>
    <item name="android:titleTextStyle">@style/TitleColorStyle</item>
</style>

am I not using the correct style to change the color?

有帮助吗?

解决方案

You need to set a custom style for actionBarStyle and then change the titleTextStyle like this

 <style name="ThemeHoloLight" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar">
    <item name="android:titleTextStyle">@style/HoloTitleText</item>
</style>

<style name="HoloTitleText" parent="android:TextAppearance.Holo">
    <item name="android:textColor">@android:color/white</item>
</style>

其他提示

Blackbelt is right - your parent doesn't conform to the right syntax. Try this:

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">

AndroidManifest.xml:

<application android:theme="@style/MyAppTheme"

values/styles.xml:

<style name="MyAppTheme" parent="android:Theme.Light">
    <!-- Customize your theme here. -->
</style>

values-v11/styles.xml:

<style name="MyAppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <!-- Customize your theme here. -->
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/orangeDark</item>
    <item name="android:titleTextStyle">@style/MyActionBar.Text</item>
</style>

<style name="MyActionBar.Text" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
    <item name="android:textStyle">bold</item>
</style>

This code will work

styles.xml

<style name="AppTheme" parent="@android:Theme.Holo.Light">

    <item name="android:actionBarStyle">@style/ActionBar</item>
    <item name="android:actionBarWidgetTheme">@style/ActionBar</item>
    <item name="android:actionMenuTextAppearance">@style/ActionMenu</item>
    <item name="android:itemTextAppearance">@style/ActionMenu</item>

</style>

<style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/blue</item>
    <item name="android:textColorHint">@android:color/widget_edittext_dark</item>
    <item name="android:titleTextStyle">@style/ActionBarTitleText</item>
</style>

<style name="ActionMenu" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
    <item name="android:textColor">@drawable/selector_action_bar_menu</item>
    <item name="android:textSize">@dimen/text_label</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textAllCaps">false</item>
</style>

<style name="ActionBarTitleText" parent="@android:style/TextAppearance.Holo">
    <item name="android:textSize">@dimen/text_action_bar_title</item>
    <item name="android:textColor">@android:color/white</item>
</style>

drawable/selector_action_bar_menu

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="false" android:color="@android:color/darker_gray"/>
    <item android:state_enabled="true" android:color="@android:color/white"/>
</selector>

It is important to override styles "android:actionMenuTextAppearance" and "android:titleTextStyle". I use a selector for change it.

I hope this will help you.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top