Android Studio 3.2.1 Voici ma mise en page:
<com.google.Android.material.button.MaterialButton
Android:id="@+id/bittrexJsonViewButton"
Android:layout_width="0dp"
Android:layout_height="@dimen/min_height"
Android:layout_marginStart="@dimen/half_default_margin"
Android:layout_marginEnd="@dimen/half_default_margin"
Android:text="@string/json_view"
app:layout_constraintBottom_toBottomOf="@+id/binanceJsonViewButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/binanceJsonViewButton"
app:layout_constraintTop_toTopOf="@+id/binanceJsonViewButton" />
changer MaterialButton's fond je change colorAccent in styles.xml
<item name="colorAccent">@color/colorAccent</item>
Agréable. C'est du travail.
Mais le problème est: je ne veux pas changer colorAccent. Je veux utiliser la couleur d'arrière-plan pour MaterialButton's différente de colorAccent
Attribut:
Android:background="#aabbcc"
pas d'aide.
1ère solution
Vous pouvez utiliser app:backgroundTint
pour changer la couleur de fond de MaterialButton
<com.google.Android.material.button.MaterialButton
Android:id="@+id/bittrexJsonViewButton"
Android:layout_width="0dp"
Android:layout_height="@dimen/min_height"
Android:layout_marginStart="@dimen/half_default_margin"
Android:layout_marginEnd="@dimen/half_default_margin"
app:backgroundTint="@Android:color/holo_orange_dark"
Android:text="@string/json_view"
app:layout_constraintBottom_toBottomOf="@+id/binanceJsonViewButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/binanceJsonViewButton"
app:layout_constraintTop_toTopOf="@+id/binanceJsonViewButton" />
2e solution
MaterialButton
utilise colorPrimary
comme arrière-plan lorsque le bouton est actif et colorOnSurface
lorsqu'il est désactivé. Vous pouvez donc le définir dans votre thème et l'appliquer sur des boutons de matière
Avec le nouveau bouton Matériel vous avez 2 options:
Utilisation de l'attribut backgroundTint
comme suggéré par Zaid Mirza
C'est la meilleure option à mon avis. Si vous souhaitez remplacer certains attributs de thème d'un style par défaut, vous pouvez utiliser le nouvel attribut materialThemeOverlay
.
Quelque chose comme:
<style name="MtButtonStyle"
parent="Widget.MaterialComponents.Button">
<item name=“materialThemeOverlay”>@style/GreenButtonThemeOverlay</item>
</style>
<style name="GreenButtonThemeOverlay">
<item name="colorPrimary">@color/green</item>
</style>
Il nécessite la version 1.1.0 de la bibliothèque.
2020: Il semble qu'ils viennent de corriger cela le 1er avril 2020.
Il devrait être publié sur 1.2.0 beta 1 depuis le le problème GitHub a été fermé comme "Fixed"