如何在Android Material Buttons中的文本旁边显示一个图标?

Zer*_*tic 1 android android-layout material-design

我正在尝试使用谷歌开发的Material Button.由于第三方依赖我无法使用androidx存储库,所以我目前正在使用android支持库(v28.0.0-alpha1,alpha3不允许我使用材质按钮)

我正试图在文本旁边设置一个带有居中文字+图标的宽按钮:

材质按钮,文本旁边的图标.

但我能得到的就是这个带有按钮边缘图标的居中文字:

素材按钮,按钮边框旁边的图标

这与原始的android按钮相同,后者遇到了同样的问题.想法是材料按钮可以解决这个问题,但它似乎不适用于28.0.0-alpha1

有一些解决方案涉及使用复合抽屉制作文本视图并在其周围绘制框架,但如果可能的话,我想坚持使用材质按钮.

任何人都知道如何解决这个问题?

Jay*_*rya 7

我也有这个问题.做了一点挖掘,发现了这一点.

有一个属性叫做app:iconGravity有两个选项,即starttextStart,它似乎对我不起作用,但也许可以试试 - 来自材质按钮的GitHub仓库.

<com.google.android.material.button.MaterialButton
    android:id="@+id/material_icon_button"
    style="@style/Widget.MaterialComponents.Button.Icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/icon_button_label_enabled"
    app:icon="@drawable/icon_24px"
    app:iconGravity="textStart"/>
Run Code Online (Sandbox Code Playgroud)

https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/button/MaterialButton.java (搜索iconGravity的定义,它在开头班级)