ActionBar la couleur du texte
comment puis-je changer la couleur du texte de l'ActionBar? J'ai hérité de l'Holo Thème de la Lumière, je suis capable de changer le fond de l'ActionBar mais je ne trouve pas ce qui est l'attribut à modifier à modifier la couleur du texte.
Ok, je suis en mesure de modifier la couleur du texte avec l'attribut android:textColorPrimary mais il modifie également la couleur du texte du menu déroulant s'affiche que lorsqu'un dépassement de se produire sur les boutons ActionBar. Aucune idée de comment changer la couleur de ces dropdown menu /Liste ?
- juste posté une solution qui a fonctionné pour moi. voir ici stackoverflow.com/a/16175220/627827
InformationsquelleAutor rnoway | 2011-05-02
Vous devez vous connecter pour publier un commentaire.
Ok, j'ai trouvé une meilleure façon. Je suis maintenant en mesure de seulement changer la couleur du titre. Vous pouvez également ajuster les sous-titres.
Voici mon styles.xml:
Widget.Holo.Light.ActionBar
pourMyTheme.ActionBarStyle
.J'ai trouvé un moyen qui fonctionne bien avec toute la saveur de
ActionBar
(Sherlock, Compat, et Natif):Suffit d'utiliser html pour définir le titre, et de spécifier la couleur du texte. Par exemple, pour définir la ActionBar texte de couleur rouge, il suffit de faire ceci:
Vous pouvez également utiliser le rouge code hex
#FF0000
au lieu du motred
. Si vous rencontrez des problèmes avec cela, voir Android Html.fromHtml(String) ne fonctionne pas pour <font color='#'>texte</font>.En outre, si vous souhaitez utiliser une couleur de ressources, ce code peut être utilisé pour obtenir la bonne Chaîne HEXADÉCIMALE, et la suppression de l'alpha si nécessaire (le police balise ne prend pas en charge alpha):
buildString
méthode qui utilise séparées par des virgules, des Objets, et vis à vis de cela. Il est maintenant résolu.red
avec" + color + "
.#FF0000
avec"+color+"
.call requires API 11 or above.
J'ai eu le même problème que vous, c'est un Holo.La lumière thème, mais je voulais le style de l'ActionBar couleur, donc j'ai besoin de changer la couleur du texte ainsi que le Titre et les Menus. Ainsi, à la fin je suis allé à git hub et regardé le code source jusqu'à ce que je trouve de la merde style correct:
alors maintenant, tout ce que vous avez à faire est de définir ce que
@color/actionBarText
et@drawable/actionbarbground
vous voulez!L'ActionBar ID n'est pas directement disponible, de sorte que vous avez à faire peu de piratage ici.
NullPointerException
sur cette ligneactionBarTextView.setTextColor(Color.RED);
getIndentifier()
, vous pouvez regarder dans(TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);
première (assurez-vous de vérifier si elle n'est pas nulle).C'est un vieux sujet, mais pour les futurs lecteurs, à l'aide de la Barre d'outils, tout devient très facile:
je l'ai fait avec une simple ligne de code
L'ajouter à la racine de la barre d'action. J'ai eu ce problème.
actionMenuTextColor - les changements de couleur du texte pour le texte de la barre d'action, elle n'a jamais travaillé lorsqu'il faisait partie de la
Widget.Styled.ActionBar
, j'ai donc dû ajouter à la racine. 2 autres attributs de modifier le titre et les sous-titres d'une barre d'action.Paramètre une chaîne HTML dans la barre d'action ne fonctionne pas sur le thème Matériau dans le SDK de la version v21+
Si vous voulez le changer, vous devez définir la couleur de texte primaire dans votre style.xml
Si vous voulez le style des sous-titres aussi, puis tout simplement ajouter ceci dans votre style personnalisé.
De personnes qui cherchent à obtenir le même résultat pour
AppCompat
bibliothèque, puis c'est ce que j'ai utilisé:<item name="android:titleTextStyle">
et<item name="titleTextStyle">
parce que j'ai été en utilisant le appcompat bibliothèque de prise en charge.La plus simple façon est de le faire dans le styles.xml.
De Google, modèle styles.xml génère actuellement le suivant:
Si vous ajoutez une ligne avant la balise de fermeture, comme illustré, qui va changer la couleur du texte pour ce qu'elle devrait être avec un Sombre ActionBar:
Si vous souhaitez personnaliser la couleur de quelque chose d'autre, vous pouvez spécifier votre propre couleur dans colors.xml ou même utiliser une couleur intégré à partir de Android à l'aide de l'android:textColorPrimary attribut:
Remarque: Cela change la couleur du titre et aussi les titres de tout MenuItems affichés dans l'ActionBar.
Trouvé le moyen de le faire bien sans créer votre propre mise en page sur l'API >= 21.
Il ne coloriser textes et de contrôle d'un drawable à l'intérieur de la barre d'action.
Espère qu'il sera utile pour quelqu'un.
Beaucoup de réponses sont obsolètes, donc je vais mettre à jour le fil et de montrer comment changer la couleur du texte et backgroundcolor sur ActionBar (Barre d'outils) et dans l'ActionBar pop-up menu.
La dernière approche dans Android (à partir de Mai 2018) dans le travail avec l'Action bar (Barre d'outils) est d'utiliser le Thème avec NoActionBar et utilisez la Barre d'outils au lieu.
voici donc ce qu'il vous faut:
De l'Activité (qui s'étend AppCompatActivity) déclarer la Barre d'outils:
Ajouter une Barre d'outils dans l'Activité de mise en page xml. Ici, nous allons définir notre coutume (remplacé thèmes), note
android:theme="@style/ThemeOverlay.AppTheme.ActionBar"
etapp:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu"
, ils vont faire l'affaire.Dans votre styles.xml vous aurez à remplacer ces deux styles pour définir des couleurs personnalisées:
C'est elle les gens
p.s. si vous me demandez, je dirais: OUI, l'ensemble de ce Thème de la chose, c'est un sacré gâchis.
C'est la solution que j'ai utilisée après vérification de toutes les réponses
Changer le nécessaire couleurs, il travaillera
Cette fonction fonctionne bien
puis de l'utiliser juste le nourrir de votre barre d'action et la nouvelle couleur de l'ie
Essayez d'ajouter ceci dans votre Activité est onCreate. Fonctionne sur presque toutes les version d'Android.
ou
Essayer beaucoup de méthodes, dans la version de l'API,une méthode viable
<item name="actionMenuTextColor">@color/your_color</item>
et de ne pas utiliser l'Android de l'espace de noms,l'espoir peut vous aider àps:
Une belle solution est à l'utilisateur un SpannableStringBuilder et définissez la couleur de cette façon. Vous pouvez même utiliser des couleurs différentes sur les différentes parties de la chaîne, ajoutez des images, etc.
Testé avec la nouvelle bibliothèque de prise en charge.
Voir Android: Coloriage partie d'une chaîne à l'aide de TextView.setText()?
Ce n'est pas la solution recommandée car je vais dans android api ici, mais comme mon application nécessite de changer le thème de dynmically sur les conditions xml pas possible ici, Donc j'ai besoin pour ce faire. Mais Cette solution est de travail très agréable.
Solution:--
Pour Android 5 (lollipop), vous devrez utiliser android:actionBarPopupTheme pour définir la textColor pour le menu de dépassement.
vous pouvez changer la couleur du texte par l'utilisation html
<font>
attribut directement dansxml
fichiers.par exemple, dans
strings.xml
: