当我使按钮宽度与父级匹配时,可绘制的开始和文本距离太远,而且它们似乎不符合 android:drawablePadding
设置。我也尝试过 android:gravity="center"
和 android:textAlignment="center"
但无济于事。设置一些 paddingStart/End
会间接影响它们之间的距离。
查看下面的结果:
按钮代码:
<Button
style="@style/ActionButton.Primary.Light.Large"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:drawableLeft="@drawable/ic_filter_and_sort_white"
android:drawablePadding="0dp"
android:textAlignment="center"
android:text="Apply filters"
app:layout_constraintBottom_toTopOf="@id/someViewBelow"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/someViewAbove" />
样式定义了background
, textColor
, margins
, minDimensions
, paddings
, radiuses
, textSize
, textAllCaps
, radiuses
, stateListAnimator
, fontPath
- 所以没有什么会影响我正在寻找的东西。
最佳答案
使用 MaterialButton
使用 app:iconGravity="start"
并使用 app:iconPadding
属性定义图标和文本之间的填充。
类似于:
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
app:icon="@drawable/...."
app:iconGravity="start"
app:iconPadding="..."
这个值可以是负数。
否则,您可以使用 app:iconGravity="textStart"
。
这里使用start
和textStart
作为iconGravity
的区别。
关于android - 在按钮上,文本和可绘制对象在居中时距离太远,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58410419/