Android MaterialButton在drawablleft图标和文本之间填充



正如主题所说,使用materialButton,我想设置drawablleft图标与文本之间的距离,我不想使用图标,只是drawablleft

默认情况下,drawableleft图标远离文本,我想让它们更近,但我不能使用图标和图标重力。如果我使用图标和图标重力,由于我使用的样式,它不会显示出来,但如果我改变样式,那么就会出现另一个问题:按钮下面会有阴影。我不想要阴影,所以我必须使用样式。

我想要的是一个MaterialButton,灰色背景,左图标,中心是文本,图标和文本是关闭的,MaterialButton是圆角,MaterialButton下面没有阴影。下面是到目前为止的代码:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.button.MaterialButton
xmlns:android="http://schemas.android.com/apk/res/android"              
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/btnShortCut"
style="@style/Button"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:orientation="vertical"
android:layout_marginRight="10dp"
app:backgroundTint="@color/background"
app:cornerRadius="@dimen/cornerM"
app:strokeColor="@color/primaryGrey"
app:strokeWidth="0.5dp"
android:padding="5dp"
android:textColor="@color/secondaryText"
android:textSize="@dimen/fontBody" >
</com.google.android.material.button.MaterialButton>
<style name="Button" parent="Widget.MaterialComponents.Button.UnelevatedButton">
<item name="android:textAllCaps">false</item>
<item name="android:insetTop">0dp</item>
<item name="android:insetBottom">0dp</item>
<item name="android:gravity">center</item>
<item name="android:padding">0dp</item>
</style>

有必要使用材质按钮吗?你有没有考虑过使用一个框架布局与一个textview重叠在它?

在你的例子中,它看起来像这样,但有一些编辑,因为我不确定你到底想要它的样子。

<FrameLayout
android:id="@+id/btnShortCut"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_marginRight="10dp" 
android:orientation="vertical"                                                                
android:gravity="center"
app:cornerRadius="@dimen/cornerM"
app:strokeColor="@color/primaryGrey"
app:strokeWidth="0.5dp"
android:padding="5dp">
<TextView
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:drawableStart="@drawable/<your icon here>"
android:drawablePadding="15dp"
android:textColor="@color/secondaryText"
android:textSize="@dimen/fontBody"/>
</FrameLayout>

最新更新