Est-il possible de changer la couleur du bouton de débordement (3 points verticaux) sur la barre d’action? Je n'ai trouvé aucun style pour le bouton de débordement.
Merci
Vous pouvez modifier l'image utilisée à l'aide de la déclaration de style suivante.
<style name="MyCustomTheme" parent="style/Theme.Holo">
<item name="Android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
</style>
<style name="MyCustomTheme.OverFlow">
<item name="Android:src">@drawable/my_overflow_image</item>
</style>
Et si vous utilisez ActionBarSherlock, voici comment procéder.
<style name="MyCustomTheme" parent="style/Theme.Sherlock">
<item name="Android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
<item name="actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
</style>
<style name="MyCustomTheme.OverFlow">
<item name="Android:src">@drawable/my_overflow_image</item>
</style>
La réponse de XGouchet est géniale, mais je voulais simplement ajouter que si vous héritez d'un style existant, vous obtenez le remplissage standard, l'état sélectionné, etc.
<style name="MyCustomTheme.OverFlow" parent="Widget.Sherlock.ActionButton.Overflow">
<item name="Android:src">@drawable/title_moreicon</item>
</style>
Certaines de ces réponses sont excessives et d’autres donnent des résultats limités. La réponse est beaucoup plus simple. Vous pouvez le régler sur la couleur de votre choix, à tout moment. Ici:
toolbar.getOverflowIcon().setColorFilter(colorInt, PorterDuff.Mode.SRC_ATOP);
Si vous utilisez AppCompat, vous pouvez créer un nouveau style personnalisé avec l'attribut Android:textColorSecondary
set correspondant à la couleur requise et l'utiliser comme thème pour la barre d'outils . Android: Modification de la couleur du texte et du débordement de l'icône de la barre d'outils
Autre option programmatique:
Drawable drawable = toolbar.getOverflowIcon();
if(drawable != null) {
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable.mutate(), getResources().getColor(R.color.thecolor));
toolbar.setOverflowIcon(drawable);
}
J'espère que ça aide!
Mettre des images n’est pas une bonne idée, car si vous pouvez le changer en changeant uniquement les couleurs, vous n’avez pas besoin d’utiliser une image supplémentaire . <item name="Android:textColorPrimary">@Android:color/white</item>
résoudra votre problème. Seul un petit problème est que cette couleur sera appliquée à la couleur du texte de votre menu de débordement également, et à beaucoup d’autres endroits bien sûr :)
ajoutez simplement cette ligne dans le style que vous avez choisi dans le fichier style.xma
<item name="colorControlNormal">@color/white</item>
ça marche bien ... si vous utilisez
<item name="textColorSecondary">@color/white</item>
alors vos autres éléments comme la couleur des icônes du menu de navigation du tiroir et le bouton radio seront affectés
Si vous utilisez la dernière barre d'outils, vous devez placer la déclaration dans styles.xml, comme indiqué dans le code ci-dessous:
<style name="AppToolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="Android:textColorPrimary">@Android:color/white</item>
<item name="Android:textColorSecondary">@Android:color/black</item>
</style>
<style name="MyCustomTheme" parent="@style/Theme.AppCompat.Light">
<item name="actionOverflowButtonStyle">@style/OverflowMenuButtonStyle</item>
</style>
<style name="OverflowMenuButtonStyle" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="Android:src">@drawable/quantum_ic_more_vert_white_24</item>
</style>
Notez que cela diffère de la réponse de XGouchet en supprimant l’espace de noms Android. La réponse de XGouchet ne fonctionne que pour les périphériques Lollipop et supérieurs, tandis que la mienne fonctionne pour tous les périphériques API 7+.
ref: Le thème Custom AppCompat ne modifie pas l'icône de débordement sur les anciens appareils
Si vous voulez juste que l'icône 3 points soit blanche au lieu de noire, vous pouvez simplement changer le thème de la barre d'outils en ceci:
<Android.support.v7.widget.Toolbar
...
Android:theme="@Android:style/ThemeOverlay.Material.Dark.ActionBar"
/>
référence complète ici: medium.com/the-curious-case-of-the-overflow-icon-color
Pour le changement de couleur de l'icône Dépassement, vous pouvez simplement ajouter
toolbar.setOverflowicon(getDrawable)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.dashboard, menu); // dashboard is xml file name
Drawable drawable = menu.findItem(R.id.lan).getIcon();
if (drawable != null) {
drawable.mutate();
drawable.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
}
return true;
}
Cela fonctionne pour moi et je l'ai trouvé de ici