如何在主题中全局更改android按钮文本颜色

如何在主题中全局更改android按钮文本颜色,android,material-design,android-button,material-components,material-components-android,Android,Material Design,Android Button,Material Components,Material Components Android,如何更改所有按钮的文本颜色 我知道我可以如下设置背景色: <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> ... <item name="colorButtonNormal">@color/buttonColor</item> </style> ... @颜色/钮扣颜色 如何对按钮文本执行此操作? <style name

如何更改所有按钮的文本颜色

我知道我可以如下设置背景色:

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    ...
    <item name="colorButtonNormal">@color/buttonColor</item>
</style>

...
@颜色/钮扣颜色
如何对按钮文本执行此操作?


 <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属性

<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>

@颜色/钮扣颜色
@style/TextAppearance.AppCompat.Button.Custom
并声明您的新文本外观样式,如下所示

<style name="TextAppearance.AppCompat.Button.Custom">
    <item name="android:textColor">@color/mycustomcolor</item>
</style>

@颜色/我的自定义颜色

如果有人无意中发现了这一点,我建议您查看一个类似的问题,关于主题,您的“强调颜色”将用于为按钮上色

<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>

...
@style/Widget.AppCompat.Button.Colored
@style/Widget.AppCompat.Button.Colored

只需通过设置此属性使用
AppCompatButton

"app:backgroundTint="@color/wildberries"
并确保您的活动扩展了AppCompatActivity。我只是在我的项目中使用它。在5.X和5.X之前版本中,它都像一个魔咒一样工作。

有了新的主题,您可以在应用程序主题中定义属性

  <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light">
    ....

    <item name="materialButtonStyle">@style/MyButtonTheme</item>
  </style>
目前,
materialThemeOverlay
属性要求android库的材质组件版本为1.1.0


<Button  
     app:backgroundTint="#fece2f" //any color
 />

如果您不希望全局定义它,这是最好的方法

这只适用于按钮吗?或者
editText
textView
我已经编辑了代码。此代码仅适用于按钮。老一点的,全部申请。谢谢你。我希望这是有帮助的。很有效,但是使用
@style/Widget.AppCompat.Button
作为ButtonColor的父样式,以获得材料设计AppCompat样式。在这个答案中,您的颜色接缝不仅适用于按钮,而且适用于所有内容。这不会改变按钮文本的颜色。这不会改变按钮文本的颜色。
<Button  
     app:backgroundTint="#fece2f" //any color
 />