すべてのボタンのテキストの色を変更するにはどうすればよいですか?
私は次のように背景色を設定できることを知っています:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="colorButtonNormal">@color/buttonColor</item>
</style>
ボタンTextでこれを行うにはどうすればよいですか?
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="Android:textColor">#yourcolor</item>
<item name="Android:buttonStyle">@style/ButtonColor</item>
<item name="colorButtonNormal">@color/buttonColor</item>
</style>
<style name="ButtonColor" parent="@Android:style/Widget.Button">
<item name="Android:textColor">@color/yourcolor</item>
</style>
Android:textColorこれは、テキストの色をグローバルに変更するのに役立ちます。これがお役に立てば幸いです
ボタンのテキストの色を変更するだけの場合。メインテーマのtextAppearanceButton
スタイル属性を変更できます。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorButtonNormal">@color/buttonColor</item>
<item name="Android:textAppearanceButton">@style/TextAppearance.AppCompat.Button.Custom</item>
</style>
新しいtextAppearanceスタイルを次のように宣言します
<style name="TextAppearance.AppCompat.Button.Custom">
<item name="Android:textColor">@color/mycustomcolor</item>
</style>
これに出くわした人には、 Material Design Button Styles。 についての同様の質問をチェックすることをお勧めします。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="Android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
<item name="buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
</style>
新しい Theme.MaterialComponents
テーマは、アプリのテーマで materialButtonStyle
属性を定義できます。
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
....
<item name="materialButtonStyle">@style/MyButtonTheme</item>
</style>
このようにして、アプリ内のすべてのボタンのスタイルをグローバルにカスタマイズできます。 materialThemeOverlay
属性を使用して、デフォルトスタイルのテーマ属性をオーバーライドできます。
何かのようなもの:
<style name="MyButtonTheme" parent="Widget.MaterialComponents.Button">
<item name="materialThemeOverlay">@style/ButtonStyleTextColor</item>
</style>
<style name="ButtonStyleTextColor">
<!-- For filled buttons, your theme's colorPrimary provides the default background color of the component, and -->
<!--the text color is colorOnPrimary -->
<item name="colorPrimary">@color/my_color</item>
<item name="colorOnPrimary">@color/my_color2</item>
</style>
現在、materialThemeOverlay
属性には、Androidライブラリのマテリアルコンポーネントのバージョン1.1.0が必要です。
implementation 'com.google.Android.material:material:1.1.0-alpha09'
この属性を設定してAppCompatButton
を使用するだけです:
"app:backgroundTint="@color/wildberries"
そして、アクティビティがAppCompatActivityを拡張していることを確認してください。私は自分のプロジェクトでそれを使用しています。 5.Xと5.Xより前の両方で、チャームのように機能します。