Thème AppCompat personnalisé ne changeant pas l'icône de débordement sur les appareils plus anciens
Récemment, j'ai décidé de changer le Action Overflow Icon
sur mon application. Je l'ai fait travailler sur des appareils à sucettes, mais ça ne marche pas sur mon Sandwich à la crème glacée et mon appareil Kitkat. Note: sur les deux appareils sur lesquels il ne fonctionne pas, l'icône action overflow a 3 points arrondis, donc le thème est en train de le changer pour la version matérielle....tout simplement pas ma version.
mon problème est que je ne peux pas obtenir que cela fonctionne sur les appareils plus anciens, mais il fonctionne sur Lollipop.
avant, J'aurais dû créer des thèmes pour chaque version, mais maintenant, ce n'est pas nécessaire. Un seul thème est recommandé.
Code
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<!--<item name="colorPrimaryLight">@color/primary_light</item>-->
<item name="colorAccent">@color/accent</item>
<item name="android:textColorPrimaryInverse">@color/primary_text_light</item>
<item name="android:textColorPrimary">@color/primary_text</item>
<item name="android:textColorSecondary">@color/secondary_text</item>
<!--<item name="icons">@color/icons</item>-->
<item name="divider">@color/divider</item>
</style>
<style name="OverflowMenuButton" parent="@style/Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/ic_star_rate_white_18dp</item>
</style>
</resources>
icône Correcte
icône incorrecte
1 réponses
vous utilisez android:actionOverflowButtonStyle
, qui est la bonne approche pour remplacer le bouton de débordement de la charpente, seulement disponible sur les appareils Lollipop et supérieurs.
cependant, AppCompat a son propre attribut actionOverflowButtonStyle qui fonctionne sur tous les appareils API 7+ - vous devez utiliser cela à la place de android:actionOverflowButtonStyle
:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="actionOverflowButtonStyle">@style/OverflowMenuButton</item>
...
</style>