web-dev-qa-db-fra.com

Changer la couleur du titre de la barre d'action

Mon code est comme ci-dessous et bien que cela fonctionne (lorsque je change de thème parent en Theme.Sherlock ou Theme.Sherlock.Light, le thème qu’il modifie) ne change pas la couleur du titre.

Le code est à peu près le même que ici

Code: 

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="MyTheme" parent="@style/Theme.Sherlock">
 <item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item>
 <item name="Android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>

<style name="MyTheme.ActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
     <item name="Android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title" >
     <item name="Android:textColor">#FF0000</item>
</style>

</resources>
30
mt0s

Sur le site ActionBarSherlock de Jake Wharton:

Attributs en miroir

En raison des limitations du système de thèmes Android, n’importe quel thème les personnalisations doivent être déclarées dans deux attributs. Le normal Les attributs préfixés par Android appliquent le thème à la barre d’actions native et les attributs non préfixés sont pour l'implémentation personnalisée.

Devait changer MyTheme.ActionBarStyle en:

   <style name="MyTheme.ActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
     <item name="Android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
     <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
   </style>

Maintenant, la couleur du texte du titre a changé. 

36
mt0s

j'ai changé la couleur du titre comme ça 

actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBarTitle </font>"));
49
MilapTank

Utilisez le code ci-dessous pour attribuer une couleur différente au texte de la barre d’action et à l’arrière-plan de la barre d’action. Il suffit d’utiliser le thème ci-dessous dans Manifest par rapport à l’activité pour laquelle vous souhaitez générer le résultat :)

 <style name="MyTheme" parent="@Android:style/Theme.Holo.Light">
        <item name="Android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@Android:style/Widget.Holo.Light.ActionBar">
        <item name="Android:titleTextStyle">@style/TitleBarTextColor</item>
        <item name="Android:background">YOUR_COLOR_CODE</item>
    </style>

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="Android:textColor">YOUR_COLOR_CODE</item>
    </style>

J’ai essayé toutes les méthodes ci-dessus, cela n’a pas fonctionné pour moi.

Spannable text = new SpannableString(actionBar.getTitle());
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionBar.setTitle(text);
7
Raja Jawahar

La manière la plus simple qui a fonctionné pour moi est d’ajouter ce qui suit dans le style du thème:

<item name="Android:textColorPrimary">@color/orange_dark</item>
4
user846316

cela changera la couleur de votre barre d’action dans # style_xml dans valeurs. Remplacez # 666666 par le code de couleur sélectionné pour la couleur de fond du titre et remplacez # 000000 par la couleur de votre texte.

<style name="MyTheme" parent="@Android:style/Theme.Holo.Light">
    <item name="Android:actionBarStyle">@style/NewActionBar</item>
</style>

<style name="NewActionBar" parent="@Android:style/Widget.Holo.Light.ActionBar">
<item name="Android:titleTextStyle">@style/TitleBarTextColor</item>
<item name="Android:background">#666666</item>
</style>
<style name="TitleBarTextColor" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Menu">
    <item name="Android:textColor">#000000</item>
</style>

alors n'oubliez pas de modifier votre fichier manifeste -> Android: theme = "@ style/NewTheme"

    <application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/NewTheme" >
    <activity
        Android:name="com.nearby.welcome.Splash"
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>
2
Jesmeen Hoque

Si vous essayez de modifier le texte du titre pour lequel vous avez une barre d’outils personnalisée, essayez d’ajouter app:titleTextColor à la barre d’outils comme ci-dessous:

 <Android.support.v7.widget.Toolbar
        Android:id="@+id/my_toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        Android:background="?attr/colorPrimary"
        Android:elevation="4dp"
        Android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:titleTextColor="@color/colorWhite" />
1
Joe