Android - 移除按钮上的填充

3

如何从 Button 视图中移除填充(padding)?无论如何,我都需要四个方向上的填充相等。

我有这样的代码:

<Button
   style="@style/btnStart"
   android:text="@string/start" />

And this style

<style name="btnStart" parent="@android:style/Widget.Button">
    <item name="android:background">@drawable/selector_start_button</item>
    <item name="android:textColor">@drawable/selector_start_button_text</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textSize">24sp</item>                       
</style>

并且这个可绘制物 selector_start_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
    <shape>
        <solid android:color="@color/start_button" />
        <stroke android:color="@color/start_button" android:width="1dp" />
        <padding
        android:left="0dp"
        android:top="0dp"
        android:right="0dp"
        android:bottom="0dp" />            
    </shape>            
    </item>

    <item>
        <shape>
            <solid android:color="#00000000" />
            <stroke android:color="@color/start_button" android:width="1dp" />            
            <padding
            android:left="0dp"
            android:top="0dp"
            android:right="0dp"
            android:bottom="0dp" />
        </shape>
    </item>
</selector>

但我仍然会得到这个问题 带有不必要填充的按钮

android:padding =“0px” - Shishir Gupta
<Button style="@style/btnStart" android:text="@string/start" android:padding="0px"/> - Shishir Gupta
也没有效果,那是我尝试的第一件事。 - PFort
那个黑色是Button的背景还是Activity的背景? - Shishir Gupta
检查"@android:style/Widget.Button"的源代码可能会解决您的问题!也许有自定义填充定义。 - Shishir Gupta
1个回答

8
也许你的按钮继承了minHeight属性。尝试覆盖它:
<Button
    ...
    android:minHeight="0dp"
    .../>

我正在为一个按钮创建自定义样式。由于它继承自android:Widget.Button,因此它具有定义的最小高度。这拯救了我的夜晚! - chntgomez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接