web-dev-qa-db-fra.com

Comment changer la couleur du texte d'action d'ActionBar à l'aide d'AppCompat

J'essaie de changer la couleur du texte d'un élément de menu d'actions dans la barre d'actions. Utilisation de l'application compat. De plus, l'icône de débordement ne change pas aussi. Voici mes fichiers styles.xml de style personnalisé.

res/values ​​/ styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="actionBarStyle">@style/MyStyledActionBar</item>
</style>

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="background">@drawable/bg_action_bar</item>
    <item name="titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="actionMenuTextAppearance">@style/MyActionBarMenuText</item>
    <item name="actionMenuTextColor">@style/MyActionBarMenuText</item>
    <item name="actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.ActionButton.Overflow">
    <item name="Android:src">@drawable/ic_action_search</item>
</style>

res/values-14/styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the Android namespace affects API levels 14+ -->
    <item name="Android:actionBarStyle">@style/MyStyledActionBar</item>
</style>

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!-- Setting values in the Android namespace affects API levels 14+ -->
    <item name="Android:background">@drawable/bg_action_bar</item>
    <item name="Android:titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="Android:actionMenuTextAppearance">@style/MyActionBarMenuText</item>
    <item name="Android:actionMenuTextColor">@style/MyActionBarMenuText</item>
    <item name="Android:actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.Base.ActionButton.Overflow">
    <item name="Android:src">@drawable/ic_action_search</item>
</style>

res/colors.xml # F3F3F3

La couleur du texte toujours noir ne change pas en blanc. Quelqu'un a-t-il correctement modifié la couleur du texte du menu Action? S'il vous plaît suggérer quelques idées. Je teste sur un appareil 4.4 Nexus5.

enter image description here

16
Mani

Vous pouvez l'utiliser pour modifier le texte de la barre d'action, quelle que soit la version de votre application. Donnez le code hexadécimal de la couleur souhaitée et ajoutez-le dans onCreate ().

actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>Some Title</font>"));
1
onexf
  1. Vérifiez que dans votre fichier XML de mise en page, aucun attribut Android:theme n'est spécifié pour votre <Toolbar>, ce qui aurait priorité sur le thème principal.

  2. Redéfinissez votre attribut actionBarStyle comme indiqué partout sur les internets.

0
DoruChidean