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>
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é.
j'ai changé la couleur du titre comme ça
actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBarTitle </font>"));
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);
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>
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>
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" />