在按钮上,文本和可绘制对象在居中时距离太远
On a button, text and drawable are too far away when centered
当我使按钮宽度与父级匹配时,可绘制的开始和文本距离太远,而且它们似乎不符合 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
- 所以没有什么会影响我正在寻找的东西。
您是否尝试使用 android:textAlignment="textStart"?
使用 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
。
试试这个,应该可以。
<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="5dp"
android:textAlignment="textStart"
android:layout_gravity="start"
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" />
您现在可以使用 MaterialButton 来设置图标重力 ex:app:iconGravity="textStart"
。
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="56dp"
android:layout_margin="16dp"
android:gravity="center"
android:textAllCaps="true"
app:backgroundTint="#fc0"
app:icon="@drawable/ic_filter_and_sort_white"
app:iconGravity="textStart"
app:iconPadding="10dp"
app:iconTint="#f00"
app:layout_constraintBottom_toTopOf="@id/someViewBelow"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/someViewAbove"
tools:text="Download Pdf" />
添加依赖implementation 'com.google.android.material:material:1.1.0-alpha10'
Reference
当我使按钮宽度与父级匹配时,可绘制的开始和文本距离太远,而且它们似乎不符合 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
- 所以没有什么会影响我正在寻找的东西。
您是否尝试使用 android:textAlignment="textStart"?
使用 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
。
试试这个,应该可以。
<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="5dp"
android:textAlignment="textStart"
android:layout_gravity="start"
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" />
您现在可以使用 MaterialButton 来设置图标重力 ex:app:iconGravity="textStart"
。
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="56dp"
android:layout_margin="16dp"
android:gravity="center"
android:textAllCaps="true"
app:backgroundTint="#fc0"
app:icon="@drawable/ic_filter_and_sort_white"
app:iconGravity="textStart"
app:iconPadding="10dp"
app:iconTint="#f00"
app:layout_constraintBottom_toTopOf="@id/someViewBelow"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/someViewAbove"
tools:text="Download Pdf" />
添加依赖implementation 'com.google.android.material:material:1.1.0-alpha10'
Reference