创建自定义按钮并使其成为默认样式

Create a custom button and make it the default style

我想要一个自定义按钮外观,所以我按照这里的答案

这有效,如果我更改 属性 以引用我的自定义按钮,我可以创建一个外观正确的按钮。

现在我想将其设置为默认值,这样我在布局上添加的每个按钮都会自动具有漂亮的外观。所以我将文件 app/res/values/style.xml 更改为这样(引用 MyButton 的行是我添加的行)

<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="buttonStyle">@style/MyButton</item>
</style>

<style name="MyButton" parent="Widget.AppCompat.Button">
    <item name="android:background">@drawable/my_button</item>
    <item name="android:gravity">center_vertical|center_horizontal</item>
    <item name="android:textColor">#FFFFFFFF</item>
    <item name="android:shadowColor">#FF000000</item>
    <item name="android:shadowDx">0</item>
    <item name="android:shadowDy">-1</item>
    <item name="android:shadowRadius">0.2</item>
    <item name="android:textSize">16dip</item>
    <item name="android:textStyle">bold</item>
    <item name="android:focusable">true</item>
    <item name="android:clickable">true</item>
</style>

没用。我必须手动将 style="@style/MyButton" 添加到每个按钮才能使其工作。我错过了什么?

您需要在 AppTheme 中进行以下更改 -

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

    ..............
    <item name="android:buttonStyle">@style/MyButton</item>

</style>

就是这样。快乐编码!!

确保您的 Activity 使用的是 AppTheme 主题。 在 activity android:name=".MainActivity int manifest.

部分添加 android:theme="@style/AppTheme"