如何减少Android按钮对象中文本周围的内部填充?

Imr*_* NZ 79 java xml mobile user-interface android

示例按钮

所以,目前我有一个看起来像上面第一张图片的按钮.如何减少按钮本身内部文本的填充(看起来更像第二个图像)?

布局宽度和高度设置为:

android:layout_width="match_parent"
android:layout_height="wrap_content"
Run Code Online (Sandbox Code Playgroud)

自定义样式形状具有参数"

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
Run Code Online (Sandbox Code Playgroud)

其余只是颜色属性和半径值.

为了说清楚,我希望按钮的框架能够更紧密地拥抱"登录"文本.

非常感谢所有帮助和反馈.谢谢.

Ste*_*ven 209

我花了很长时间才找到这个,但按钮中文本周围的"填充"根本不是填充物.默认的Widget.Button样式包含minHeight属性.更改按钮上的minHeight将允许您按预期调整填充.

<Button
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textColor="@color/black"
        android:minHeight="40dip"/>


<style name="Widget.Holo.Button" parent="Widget.Button">
    <item name="android:background">@android:drawable/btn_default_holo_dark</item>
    <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
    <item name="android:textColor">@android:color/primary_text_holo_dark</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 我的宽度面临着类似的问题.设置android:minWidth ="0dp"工作,但随后在长文本按钮上,我需要设置android:paddingRight和android:paddingLeft来防止布局不佳. (5认同)
  • 它是插入 `android:insetTop="0dp" android:insetBottom="0dp"`,那么它最终将删除填充,背景按钮高度将为 48dp (2认同)

Gab*_*tti 12

在材料零件的图书馆,MaterialButton有一个默认的风格,insetBottominsetTop与值6dp

您可以在布局中更改它们:

  <com.google.android.material.button.MaterialButton
      android:insetTop="0dp"
      android:insetBottom="0dp"
      ../>
Run Code Online (Sandbox Code Playgroud)

或风格:

 <style name="Button_no_insets" parent="Widget.MaterialComponents.Button"..>
    <item name="android:insetTop">0dp</item>
    <item name="android:insetBottom">0dp</item>
 </style>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明在此处输入图片说明

  • 唯一正确的答案 (3认同)