android - item - xamarin menu bar




Changer la couleur du texte du titre de la barre d’action à l’aide du thème Light.DarkActionBar dans AppCompat 21 (4)

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 définitivement 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 n'arrive pas à comprendre quel attribut redéfinir. Des idées? Est-ce un bug appcompat?


Assurez-vous que vous apportez 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.

Vous pouvez aussi essayer de définir les attributs app: theme et app: popupTheme sur votre barre d'outils .


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 cochez 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.


Essayez d’ajouter ceci à la création de votre activité. Fonctionne sur presque toutes les versions Android.

Pour l'activité java:

 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 l'attribut android:theme était surchargé.

Avez-vous vérifié le vôtre? :)





material-design