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

2022-08-31 09:45:52

Example buttons

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

布局宽度和高度设置为:

android:layout_width="match_parent"
android:layout_height="wrap_content"

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

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">

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

为了清楚起见,我希望按钮的框架更紧密地拥抱“登录”文本。

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


答案 1

我花了很长时间才找到这个,但是按钮中文本周围的“填充”根本不是真正的填充。默认的 Widget.Button 样式包括一个属性。更改按钮将允许您按预期调整填充。minHeightminHeight

<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>

答案 2

在“材料构件库”中,具有默认样式,其值为 和 值为 。MaterialButtoninsetBottominsetTop6dp

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

  <com.google.android.material.button.MaterialButton
      android:insetTop="0dp"
      android:insetBottom="0dp"
      ../>

或风格:

 <style name="Button_no_insets" parent="Widget.MaterialComponents.Button"..>
    <item name="android:insetTop">0dp</item>
    <item name="android:insetBottom">0dp</item>
 </style>

enter image description hereenter image description here


推荐