Android 工作室自定义按钮样式填充问题

Android studio custom button style padding issues

经过 4 个月的不活动后,我意识到有一些变化。

现在,当您创建一个新按钮时,它是紫色的并且定义了一些填充。通过编辑主题设法消除了紫色,但我仍然遇到填充问题。当我制作一个新按钮时,默认情况下它的左右填充为 16dp,顶部和底部为 4。我不想被迫将每个新按钮更改为 0 填充..

我有两个选择。在自定义按钮中设置填充 xml:

    <?xml version="1.0" encoding="utf-8"?>
    
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
    
    <corners android:radius="12dp" />
    <solid android:color="#000000" />
    
    <padding
    
    android:left="0dp"
    
    android:top="0dp"
    
    android:right="0dp"
    
    android:bottom="0dp" />
    
    </shape>

...但由于某些原因,这不起作用。

有人能找出问题所在吗?

或者告诉我如何更改新按钮的默认填充值?

还有一些 insetBotton 和 insetTop 的值默认设置为 0 而不是 6

转到您的 res 文件夹 -> values -> styles 在下面插入以下行以编辑 standard button et voilà:

<style name="AppTheme" parent="Widget.AppCompat.Button">
    <item name="android:minWidth">0dp</item>
    <item name="android:minHeight">0dp</item>
</style>

这应该行得通,试一试吧伙计。

使用 Material 组件主题,Button 在运行时被 MaterialButton 替换。

MaterialButton 的默认样式为 insetBottominsetTop,值为 6dp

如果您想全局更改 应用中的按钮样式,您还可以在应用主题中添加 materialButtonStyle 属性:

<style name="AppTheme" parent="Theme.MaterialComponents.*">
   <item name="materialButtonStyle">@style/Widget.App.Button</item>
</style>

<style name="Widget.App.Button" parent="Widget.MaterialComponents.Button">
    <item name="android:paddingLeft">....</item>
    <item name="android:paddingRight">...</item>
    <item name="android:insetTop">...</item>
    <item name="android:insetBottom">....</item>
</style>