在按钮视图中删除文本填充

Dan*_*ali 12 android android-button

我想在Button视图中删除文本周围的填充.第一个截图是我将实现的结果,第二个截图是最先进的.

在此输入图像描述

在此输入图像描述

当然,我已经定义了一个自定义drawable来获得按钮外观.但即使我将padding属性设置为0dp,结果也不会改变.

请问有什么建议吗?

编辑 这是按钮的xml代码

<Button
        android:id="@+id/btnCancel"
        style="@style/dark_header_button"
        android:layout_width="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_height="wrap_content"
        android:includeFontPadding="false"
        android:padding="0dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:text="@android:string/cancel" />
Run Code Online (Sandbox Code Playgroud)

这是样式xml文件:

<style name="dark_header_button">
    <item name="android:background">@drawable/bkg_dark_header_button</item>
    <item name="android:shadowDy">-1</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowRadius">1</item>
    <item name="android:textSize">14sp</item>
    <item name="android:textColor">#ffffff</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是可绘制的xml文件:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">
    <shape>

        <corners android:radius="10dp" />

        <gradient 
            android:angle="90" 
            android:endColor="#060606"
            android:startColor="#707070"
            android:type="linear" />

    </shape>
</item>
<item>
    <shape>

        <corners android:radius="10dp" />

        <gradient 
            android:angle="90" 
            android:endColor="#707070" 
            android:startColor="#060606" 
            android:type="linear" />

        <stroke 
            android:width="0.5dp" 
            android:color="#2b2b2b" />

    </shape>
</item>


</selector>
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 48

它实际上不是填充,但主题是为按钮小部件设置minHeight和minWidth.您可以通过在xml中的按钮上设置以下内容来完全删除此效果,而无需更改主题:

android:minHeight="0dp"
android:minWidth="0dp"
Run Code Online (Sandbox Code Playgroud)

因此,它还暗示您可以使用不同的设置来处理不同的效果,0dp仅仅是一个完全消除此效果的示例.


sti*_*ike 16

你可以尝试使用android:includeFontPadding.将其设置为false.也将填充设置为0.


小智 1

按钮文本不需要填充,默认情况下位于按钮的中心。我认为您正在清单文件中使用android:theme="@android:style/Theme.Black.NoTitleBar",请删除它并使用本机应用程序主题并尝试。

  • 如果您不需要标题/操作栏怎么办? (2认同)