J'utilise la bibliothèque v7 appcompat 21 pour utiliser les nouveaux styles de matériau sur les périphériques antérieurs à Lollipop. Mon styles.xml ressemble à ceci:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="Android:textColorPrimary">#ff0000</item>
<item name="Android:textColorPrimaryInverse">#ff0000</item>
</style>
J'essaie de changer la couleur du texte sur la barre d'action. Mais peu importe ce que je mets pour textColorPrimary ou textColorPrimaryInverse, la couleur est toujours blanche. Si j'hérite de Theme.AppCompat, je peux remplacer "textColorPrimary", et si j'hérite de Theme.AppCompat.Light, je peux remplacer "textColorPrimaryInverse". Mais ni ne fonctionnent lorsque vous utilisez le thème Light.DarkActionBar.
J'utilise certainement AppTheme car la définition d'attributs tels que colorPrimary pour modifier la couleur d'arrière-plan de la barre d'actions fonctionne correctement. Je n'utilise aucun autre fichier de style de qualificatif de ressource.
J'ai fouillé dans les fichiers de styles Android) et je n'arrive pas à comprendre quel attribut redéfinir. Des idées? S'agit-il d'un bogue d'appcompat?
Vous pouvez le changer avec l'attribut actionBarStyle
du thème.
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="titleTextStyle">@style/MyTitleTextStyle</item>
</style>
<style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="Android:textColor">CHANGE_COLOR_HERE</item>
</style>
Cela fera que votre titre de barre d'outils utilise la couleur blanche:
<Android.support.v7.widget.Toolbar
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Android:minHeight="?attr/actionBarSize"
Android:background="?attr/colorPrimary" />
Pour comprendre quelle est la différence entre ThemeOverlay.AppCompat.Dark.ActionBar
et Theme.AppCompat.Light.DarkActionBar
vérifier cette réponse
C'est app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
qui applique une couleur claire car la couleur du titre utilisée dans ce thème est le blanc.
assurez-vous d’apporter les modifications dans tous vos dossiers de valeurs, tels que "valeurs-v11", "valeurs-v14", etc. s’il existe.
Sinon, assurez-vous que le même 'AppTheme' que vous avez montré ci-dessus est utilisé dans l'application.
S'il vous plaît, postez le fichier complet style.xml et le code manifeste faisant référence au style, ce qui vous permettra de mieux comprendre votre problème.
Aussi, vous pouvez essayer le réglage app: thème et app: popupTheme attributs sur votre barre d'outils.
Essayez d’ajouter ceci à la création de votre activité. Fonctionne avec presque toutes les versions de Android.
Pour Java Activité:
actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));
Pour les fragments:
getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));
J'ai utilisé un fichier XML de mise en page généré et je n'ai pas remarqué que le Android:theme
attribut a été annulé.
Avez-vous vérifié le vôtre? :)