为什么android:buttonStyle不设置按钮样式?

为什么android:buttonStyle不设置按钮样式?,android,android-theme,android-styles,Android,Android Theme,Android Styles,所以,我有一个奇怪的问题:我的应用程序非常简单,主活动中只有一个按钮,并且在清单中为活动设置了自定义主题 我可以确认主题是否有效并被选中,因为我可以更改活动背景或字体颜色,例如 但是,当我尝试设置活动中所有按钮的样式时,它不起作用 这是我使用的style.xml代码: <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat

所以,我有一个奇怪的问题:我的应用程序非常简单,主活动中只有一个按钮,并且在清单中为活动设置了自定义主题

我可以确认主题是否有效并被选中,因为我可以更改活动背景或字体颜色,例如

但是,当我尝试设置活动中所有按钮的样式时,它不起作用

这是我使用的style.xml代码:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:background">#0f0</item>
        <item name="android:buttonStyle">@style/btxs</item>
    </style>

    <style name="btxs" parent="@android:style/Widget.Button">
        <item name="android:textColor">#f00</item>
    </style>

</resources>

AppCompatActivity
将使用
buttonStyle
。我还假设您可能想要扩展
Base.Widget.AppCompat.Button

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:background">#0f0</item>
        <item name="buttonStyle">@style/btxs</item>
    </style>

    <style name="btxs" parent="Base.Widget.AppCompat.Button">
        <item name="android:textColor">#f00</item>
    </style>

</resources>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音
#0f0
@样式/BTX
#f00

你说得对。但是,奇怪的事情还是发生了。如果我使用你的代码,将android:background添加到按钮样式中,我会松开所有的填充,它看起来很奇怪。如何只改变背景色。这是否受Base.Widget.AppCompat.Button的影响?是的,您将覆盖默认背景,它使用。
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:background">#0f0</item>
        <item name="buttonStyle">@style/btxs</item>
    </style>

    <style name="btxs" parent="Base.Widget.AppCompat.Button">
        <item name="android:textColor">#f00</item>
    </style>

</resources>