Android Studio 3.2.1ここに私のレイアウト:
<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" />
変更するにはMaterialButton's背景変更colorAccentstyles.xml
<item name="colorAccent">@color/colorAccent</item>
いいね。それは仕事です。
しかし、問題は次のとおりです。変更したくないcolorAccent。 MaterialButton'sに背景色を使用したいcolorAccentとは異なる
属性:
Android:background="#aabbcc"
助けません。
最初のソリューション
app:backgroundTint
を使用して、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" />
2番目のソリューション
MaterialButton
は、ボタンがアクティブな状態の場合はcolorPrimary
を背景として使用し、無効の場合はcolorOnSurface
を使用します。だから、あなたはそれをあなたのテーマで定義して、それをマテリアルボタンに適用することができます
新しい Material Button では、2つのオプションがあります。
Zaid Mirzaの提案に従ってbackgroundTint
属性を使用する
それは私の意見では最良の選択肢です。デフォルトのスタイルからいくつかのテーマ属性を上書きしたい場合は、新しいmaterialThemeOverlay
属性を使用できます。
何かのようなもの:
<style name="MtButtonStyle"
parent="Widget.MaterialComponents.Button">
<item name=“materialThemeOverlay”>@style/GreenButtonThemeOverlay</item>
</style>
<style name="GreenButtonThemeOverlay">
<item name="colorPrimary">@color/green</item>
</style>
ライブラリのバージョン1.1.0が必要です。
2020:2020年4月1日にこれを修正したようです。
GitHubの問題が「修正済み」 としてクローズされたため、1.2.0ベータ1でリリースされる予定です。