comment puis-je changer la couleur du texte de l'ActionBar? J'ai hérité du Holo Light Theme, je peux changer l'arrière-plan de l'ActionBar mais je ne sais pas quel est l'attribut à modifier pour changer la couleur du texte.
Ok, je peux changer la couleur du texte avec l'attribut android: textColorPrimary mais cela change également la couleur du texte du menu déroulant affiché lorsqu'un débordement se produit sur les boutons ActionBar. Une idée comment changer la couleur de ces menu déroulant / liste?
Réponses:
Ok, j'ai trouvé un meilleur moyen. Je ne peux maintenant changer que la couleur du titre. Vous pouvez également modifier le sous-titre.
Voici mon styles.xml:
la source
Widget.Holo.Light.ActionBar
forMyTheme.ActionBarStyle
.J'ai trouvé un moyen qui fonctionne bien avec n'importe quelle saveur de
ActionBar
( Sherlock , Compat et Native ):Utilisez simplement html pour définir le titre et spécifiez la couleur du texte. Par exemple, pour définir la couleur du texte ActionBar sur rouge, procédez simplement comme suit:
Vous pouvez également utiliser le code hexadécimal rouge
#FF0000
au lieu du motred
. Si vous rencontrez des problèmes avec cela, consultez Android Html.fromHtml (String) ne fonctionne pas pour le <font color = '#'> texte </font> .De plus, si vous souhaitez utiliser une ressource de couleur, ce code peut être utilisé pour obtenir la chaîne HEX correcte et supprimer l'alpha si nécessaire (la balise de police ne prend pas en charge l'alpha):
la source
red
par" + color + "
.#FF0000
par"+color+"
.J'avais le même problème que vous, c'est un thème Holo.Light mais je voulais styliser la couleur ActionBar, donc je devais changer la couleur du texte ainsi que le titre et les menus. Donc à la fin, je suis allé sur git hub et j'ai regardé le code source jusqu'à ce que je trouve le style sacrément correct:
Alors maintenant, tout ce que vous avez à faire est de définir quoi
@color/actionBarText
que ce soit et que@drawable/actionbarbground
vous voulez!la source
L'ID ActionBar n'est pas disponible directement, vous devez donc faire un peu de piratage ici.
la source
NullPointerException
sur cette ligneactionBarTextView.setTextColor(Color.RED);
getIndentifier()
, vous pouvez d'abord regarder(TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);
(assurez-vous de vérifier s'il n'est pas nul).Toolbar toolbar = findViewById(R.id.toolbar);
là où dans le fichier de mise en page xml elle est entourée par uncom.google.android.material.appbar.AppBarLayout
élément, alorstoolbar.setTitleTextColor( getResources().getColor( R.color.colorViolet ) );
C'est un vieux sujet mais pour les futurs lecteurs, utiliser ToolBar rend tout très simple:
la source
je l'ai fait avec un simple code d'une ligne
la source
Ajoutez-le à la racine de la barre d'actions. J'ai eu ce problème.
actionMenuTextColor - change la couleur du texte pour le texte de la barre d'action, cela n'a jamais fonctionné quand il faisait partie du
Widget.Styled.ActionBar
, j'ai donc dû l'ajouter à la racine. Les 2 autres attributs changent le titre et le sous-titre d'une barre d'action.la source
La définition d'une chaîne HTML dans la barre d'action ne fonctionne pas sur le thème Matériau dans le SDK v21 +
Si vous souhaitez le modifier, vous devez définir la couleur de texte principale dans votre style.xml
la source
La façon la plus simple est de le faire dans le styles.xml.
Le modèle styles.xml de Google génère actuellement les éléments suivants:
Si vous ajoutez une ligne de plus avant la balise de fermeture, comme indiqué, cela changera la couleur du texte en ce qu'elle devrait être avec un Dark ActionBar:
Si vous souhaitez personnaliser la couleur à autre chose, vous pouvez soit spécifier votre propre couleur dans colors.xml ou même utiliser une couleur intégrée d'Android en utilisant l'attribut android: textColorPrimary:
Remarque: cela modifie la couleur du titre ainsi que les titres des éléments MenuItems affichés dans l'ActionBar.
la source
Si vous souhaitez également styler le sous-titre, ajoutez-le simplement dans votre style personnalisé.
Les gens qui cherchent à obtenir le même résultat pour la
AppCompat
bibliothèque, c'est ce que j'ai utilisé:la source
<item name="android:titleTextStyle">
et<item name="titleTextStyle">
parce que j'utilisais la bibliothèque de support compatible avec l'application.J'ai trouvé le moyen de le faire correctement sans créer votre propre mise en page sur l'API> = 21.
Il ne colorise que les textes et contrôle les tirages à l'intérieur de la barre d'action.
J'espère que cela sera utile pour quelqu'un.
la source
Beaucoup de réponses sont obsolètes, je vais donc mettre à jour le fil et montrer comment changer la couleur du texte et la couleur d'arrière-plan dans ActionBar (barre d'outils) et dans le menu contextuel ActionBar.
La dernière approche d'Android (en mai 2018) pour travailler avec la barre d'action (barre d'outils) consiste à utiliser le thème avec NoActionBar et à utiliser la barre d'outils à la place.
voici donc ce dont vous avez besoin:
Dans Activity (qui étend AppCompatActivity), déclarez la barre d'outils:
Ajoutez la barre d'outils dans le xml de mise en page de l'activité. Ici, nous allons définir notre personnalisation (thèmes remplacés), noter
android:theme="@style/ThemeOverlay.AppTheme.ActionBar"
etapp:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu"
, ils feront l'affaire.Dans votre styles.xml, vous devrez remplacer ces deux styles pour définir des couleurs personnalisées:
C'est ça les amis
ps si vous me demandez, je dirais: OUI, tout ce thème est un sacré bordel.
la source
C'est la solution que j'ai utilisée après avoir vérifié toutes les réponses
Modifiez les couleurs requises, cela fonctionnera
la source
Cette fonction fonctionne bien
puis pour l'utiliser, il suffit de nourrir votre barre d'action et la nouvelle couleur ie
la source
Essayez d'ajouter ceci dans le onCreate de votre activité. Fonctionne sur presque toutes les versions d'Android.
ou
la source
Essayez beaucoup de méthodes, dans la version basse de l'API, une méthode possible est
<item name="actionMenuTextColor">@color/your_color</item>
et n'utilisez pas l'espace de noms Android, j'espère que cela peut vous aiderps:
la source
il suffit de mettre cela dans votre style.
<item name="android:textColorPrimary">@color/yourcolor</item>
la source
Une bonne solution consiste à utiliser un SpannableStringBuilder et à définir la couleur de cette façon. Vous pouvez même utiliser différentes couleurs sur différentes parties de la chaîne, ajouter des images, etc.
Testé avec la nouvelle bibliothèque de support.
Voir Android: colorier une partie d'une chaîne à l'aide de TextView.setText ()?
la source
Ce n'est pas la solution recommandée car je vais dans les API Android ici mais comme mon application nécessite de changer le thème de manière dynmique dans des conditions xml pas possibles ici, donc je dois le faire. Mais cette solution fonctionne très bien.
Solution:--
la source
Pour Android 5 (sucette), vous devrez utiliser android: actionBarPopupTheme pour définir la couleur du texte pour le menu de débordement.
la source
La manière la plus simple est:
Ajoutez ces deux lignes à votre fichier styles.xml
Remplacez la couleur par votre couleur.
la source
vous pouvez changer la couleur de n'importe quel texte en utilisant l' attribut html
<font>
directement dans lesxml
fichiers. par exemple dansstrings.xml
:la source