user3726986
user3726986

Reputation:

Unable to change text color of ActionBar title

I am unable to change the text color of title of Action Bar. How can it be done in xml itself?

My style.xml in values-v11 and values-v14 contain this snippet of code

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
       <item name="android:actionBarStyle">@style/MyActionBarStyle</item>

    </style>

   <style name="MyActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
        <item name="android:displayOptions">showTitle</item>
        <item name="titleTextStyle">@style/titleStyle</item>

    </style>
    <style name="titleStyle" parent="@style/TextAppearance.AppCompat.Widget.Base.ActionBar.Title">
         <item name="android:textColor">#f2dca9</item> 
    </style>
</resources>

Upvotes: 1

Views: 835

Answers (3)

LearningBasics
LearningBasics

Reputation: 664

try this

<style name="AppTheme" parent="Theme.AppCompat">
       <item name="android:actionBarStyle">@style/MyActionBar</item>

    </style>

     <style name="MyActionBar" parent="Widget.AppCompat.ActionBar"> 
        <item name="android:displayOptions">showTitle</item>
        <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
    </style>

     <style name="MyActionBarTitleText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">#f2dca9</item>
    </style>

Upvotes: 0

Jijo
Jijo

Reputation: 520

please try this. it works you, put this code in the onCreate() method

ActionBar bar = getActionBar();
bar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBartitle </font>"));

or Add it to the root of the action bar

<style name="ActionBar" parent="@style/Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="actionMenuTextColor">@color/stdDarkBlueText</item>
</style>
<style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="titleTextStyle">@style/ActionBarTitleText</item>
    <item name="subtitleTextStyle">@style/ActionBarSubTitleText</item>
</style>
<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/stdDarkBlueText</item>
    <item name="android:textSize">12sp</item>
</style>
<style name="ActionBarSubTitleText"    parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle">
  <item name="android:textColor">@color/stdDarkBlueText</item>
  <item name="android:textSize">12sp</item>

Upvotes: 2

Jayesh Khasatiya
Jayesh Khasatiya

Reputation: 2140

Do it programmatically,

int titleId = this.activity.getResources().getIdentifier("action_bar_title", "id", "android");

TextView abTitle = (TextView) this.activity.findViewById(titleId);
abTitle.setTextColor(Color.parseColor("#6f6f6f"));

using XML:

<resources>

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

    <style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="android:titleTextStyle">@style/TitleBarTextColor</item>
    </style>

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/red</item>
    </style>
    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

if you use API 14 and UP then put it into values-v14.....

Thats it...

Upvotes: 0

Related Questions