La spécification de matériau affiche un état de bouton désactivé qui semble grisé.
https://www.material.io/design/components/buttons.html#toggle-button
J'utilise le MaterialButton des composants matériels d'Android: https://www.material.io/develop/Android/components/material-button/
Cependant, lorsque vous réglez le bouton sur désactivé, la couleur/teinte du bouton ne change pas.
<com.google.Android.material.button.MaterialButton
Android:id="@+id/disabled_material_button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:enabled="false"
Android:text="@string/button_label_disabled"/>
Tout simplement pas implémenté dans Material Android Composants par défaut? Material Components définit-il une liste des boutons désactivée?
/res/color
(dans votre répertoire res
).<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_enabled="false"
Android:color="@color/colorDisabled" />
<item Android:color="@color/colorEnabled" />
</selector>
Widget.MaterialComponents.Button
styles comme parent et votre liste d'état des couleurs comme balise backgrountTint
:<style name="MaterialButtonStyle" parent="Widget.MaterialComponents.Button.UnelevatedButton">
<item name="backgroundTint">@color/color_states_materialbutton</item>
</style>
MaterialButton
dans votre mise en page:<com.google.Android.material.button.MaterialButton
style="@style/MaterialButtonStyle"
Android:id="@+id/disabled_material_button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:enabled="false"
Android:text="@string/button_label_disabled"/>
vous devez utiliser un ThemeOverlay et appliquer le style coloré séparément
<style name="AccentButton" parent="ThemeOverlay.AppCompat.Dark">
<!-- customize colorButtonNormal for the disable color -->
<!-- customize colorAccent for the enabled color -->
</style>
<Button
Android:id="@+id/login_button"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="@string/fragment_login_login_button"
Android:theme="@style/AccentButton"
style="@style/Widget.AppCompat.Button.Colored"/>