Android 新材质库:中间图标,位于“内部文本”按钮上方

Android 新材质库:中间图标,位于“内部文本”按钮上方,android,xml,material-design,android-button,Android,Xml,Material Design,Android Button,我有这个按钮,我想在它的中心图标,但它也应该高于文本 问题是,有一个选项可以设置图标的重力,它是app:iconGravity,但它只有两个选项,没有一个是中心。 如果没有文本,将选项设置为textStart会将图标移到中间,但我希望图标位于中间,也位于文本上方 以下是当前代码: <com.google.android.material.button.MaterialButton android:id="@+id/payButton" st

我有这个按钮,我想在它的中心图标,但它也应该高于文本

问题是,有一个选项可以设置图标的重力,它是
app:iconGravity
,但它只有两个选项,没有一个是中心。 如果没有文本,将选项设置为
textStart
会将图标移到中间,但我希望图标位于中间,也位于文本上方

以下是当前代码:

<com.google.android.material.button.MaterialButton
            android:id="@+id/payButton"
            style="@style/Widget.MaterialComponents.Button.Icon"
            android:layout_width="0dp"
            android:layout_height="96dp"
            android:layout_weight="1"
            android:fontFamily="@font/montserrat_regular"
            android:text="@string/pay"
            android:textColor="?attr/colorPrimary"
            app:backgroundTint="@android:color/white"
            app:icon="@drawable/ic_pay_black_24dp"
            app:iconGravity="textStart"
            app:iconSize="32dp"
            app:iconTint="@color/colorPrimary" />


视图中的
材质按钮不允许执行您想要的操作。您将使用自己的视图手动执行此操作。

他们似乎认为这不是一个好主意/设计,但他们的设计师同意在未来版本中添加此功能

以下是关于回购的请求/讨论:

目前,我发现的唯一可能性是:

  • 使用android:drawableTop而不是app:icon:可定制性差
  • 创建自己的自定义视图或布局,并将其包含在需要的位置
我刚刚提交了一份PR来添加这个功能,因为他们似乎同意它应该支持
top
gravity


更新(2021-02-17)


现在可以使用以下选项之一在上使用它:
app:iconGravity=“top”
app:iconGravity=“textTop”

这仅适用于包含的按钮。我看不出问题是关于包含的按钮。drawableTop而不是图标?不起作用。我真的不知道为什么我也遇到了这个。你找到解决办法了吗?@Trevor没有。他们没有提供这么小的功能,真是令人讨厌!