buttonStyle忽略colorButtonNormal

时间:2018-08-28 16:46:34

标签: android android-layout android-button android-theme

我正在尝试更改默认Android Button的背景色。 app:backgroundTint属性存在错误,因此我不使用它(棒棒糖之前的设备会丢失其状态列表)

colorButtonNormal添加到应用程序主题中是可行的,但是如果我改为将其添加到子主题中并在应用程序主题上使用buttonStyle属性,则由于某些原因,colorButtonNormal会被忽略(所有其他子主题属性都将应用。)

这是一个错误吗?

这是我的styles.xml:

<resources>

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="buttonStyle">@style/BlueButton</item>
</style>

<style name="BlueButton" parent="Widget.AppCompat.Button">
    <item name="colorButtonNormal">@color/colorPrimary</item>  <-- not applied
    <item name="android:textColor">#fff</item>
</style>

1 个答案:

答案 0 :(得分:1)

在您的styles.xml中尝试以下内容

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