带图标的 MaterialButton 不会使文本居中

Mik*_*sen 5 android android-button material-components-android

我正在尝试使用 Material Button,我希望在最左侧有一个图标,然后在中心有一些文本。但是,例如,当我放入左侧的图标时,我可以清楚地看到文本被推到了右侧。有什么办法可以避免这种情况吗?我希望文本居中,并希望避免为它做一个骇人听闻的解决方案..

<com.google.android.material.button.MaterialButton
        android:id="@+id/testButton"
        style="@style/RevertedColorDefaultButton"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="TEST"
        android:textAlignment="center"
        app:icon="@drawable/some_icon"
        app:iconGravity="start"´
        app:iconTint="@color/colorPrimary"
        app:layout_constraintBottom_toTopOf="@id/someOtherButton"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.94" />
Run Code Online (Sandbox Code Playgroud)

有关信息,我用普通按钮尝试了同样的事情,同样的问题:

<androidx.appcompat.widget.AppCompatButton
        android:id="@+id/test2Button"
        style="@style/RevertedColorDefaultButton"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:drawableStart="@drawable/some_icon"
        android:drawableTint="@color/colorPrimary"
        android:text="TEST"
        app:layout_constraintBottom_toTopOf="@id/someOtherButton"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.94" />
Run Code Online (Sandbox Code Playgroud)

编辑:添加图像

在此处输入图片说明

小智 8

对于稍后查看此内容的任何人,我找到了一种方法,通过将图标的固有宽度添加为按钮的负填充来实现此目的

<button>.iconPadding = -(icon?.intrinsicWidth ?: 0)
Run Code Online (Sandbox Code Playgroud)

这是因为文本恰好是由intrinsicWidth图标推动的


小智 6

android:includeFontPadding="false"
Run Code Online (Sandbox Code Playgroud)

这在我的例子中起到了作用


小智 0

尝试android:textAlignment="center"