在我的 Android 应用程序中,我希望在按钮文本的右侧立即有一个可绘制对象(或图标),但我面临一个问题,可绘制对象距离文本太远,并且 app:icon 属性不是完全可见。
这是我当前使用的 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.button.MaterialButton
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/caret_down"
android:drawablePadding="20dp"
android:gravity="center"
android:minWidth="78dp"
android:minHeight="60dp"
android:textAlignment="center"
app:icon="@drawable/caret_down"
app:iconGravity="textEnd"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="lorem" />
</androidx.constraintlayout.widget.ConstraintLayout>
我使用 com.google.android.material:material:1.7.0
如您所见,我尝试了我能想到的所有 xml 属性。在屏幕截图上,指针是可绘制的,而不是图标。由于某种原因,图标根本不可见(我尝试添加材质样式,是的)。我用 MaterialButton、Button 和 AppCompatButton 尝试过 - 结果相同。按钮的宽度必须保持宽。
我做错了什么,如何实现可绘制对象更接近文本的所需布局?
以下是在我的系统中正常工作的:
<com.google.android.material.button.MaterialButton
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="lorem"
app:icon="@drawable/baseline_send_24"
app:iconGravity="textEnd"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
我在材料设计的两个版本上检查了这一点,即材料:1.9.0 和材料:1.7.0。在两个版本上都完美显示。
尝试删除您的代码并粘贴此代码。