在按钮上,文本和可绘制元素居中时距离太远

Ant*_*tek 3 android android-layout android-button material-components material-components-android

当我使按钮宽度与父级匹配时,可绘制的开始和文本距离太远,并且它们似乎不尊重android:drawablePadding设置。我也尝试过,android:gravity="center"android:textAlignment="center"没有成功。设置一些paddingStart/End会间接影响它们之间的距离。请参阅下面的结果:

匹配父宽度按钮

按钮的代码:

<Button
            style="@style/ActionButton.Primary.Light.Large"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:drawableLeft="@drawable/ic_filter_and_sort_white"
            android:drawablePadding="0dp"
            android:textAlignment="center"
            android:text="Apply filters"
            app:layout_constraintBottom_toTopOf="@id/someViewBelow"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/someViewAbove" />
Run Code Online (Sandbox Code Playgroud)

样式定义了background, textColor, margins, minDimensions, paddings, radiuses, textSize, textAllCaps, radiuses, stateListAnimator, fontPath- 所以没有什么会影响我正在寻找的内容。

Gab*_*tti 7

使用MaterialButtonwithapp:iconGravity="start"并使用该属性定义图标和文本之间的填充app:iconPadding

就像是:

    <com.google.android.material.button.MaterialButton
        style="@style/Widget.MaterialComponents.Button.Icon"
        app:icon="@drawable/...."
        app:iconGravity="start"
        app:iconPadding="..."
Run Code Online (Sandbox Code Playgroud)

该值可以为负值。

在此输入图像描述

否则你可以使用app:iconGravity="textStart". 这里使用和as
的区别。 starttextStarticonGravity

在此输入图像描述