多行按钮文本忽略按钮边距的问题
Issues with multiline button texts ignoring button margins
基本上我有一个带有很长字符串的按钮,它会导致换行。该按钮具有左右边距,但是由于该按钮占据了父级的整个宽度,因此多行按钮文本会忽略这些边距。
一个明显的解决方案是将布局宽度设置为 0dp,但这会强制静态宽度,这意味着对于较短的按钮文本,按钮不再被包裹。
有没有一个很好的解决方案如何保持 wrap_content 的宽度但仍然不忽略边距?
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:text="@string/longstring"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
在按钮中添加以下行 xml 以便按钮尊重边距
app:layout_constrainedWidth="true"
输出
最简单的解决方案是您必须在按钮的字符串中使用 /n 以使按钮文本不扩展
例如"This is a string then /n It will be on the next line"
这样我认为你的按钮不会忽略边距并显示里面的文本
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:text="@string/longstring"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constrainedWidth="true" />
</androidx.constraintlayout.widget.ConstraintLayout>
基本上我有一个带有很长字符串的按钮,它会导致换行。该按钮具有左右边距,但是由于该按钮占据了父级的整个宽度,因此多行按钮文本会忽略这些边距。
一个明显的解决方案是将布局宽度设置为 0dp,但这会强制静态宽度,这意味着对于较短的按钮文本,按钮不再被包裹。
有没有一个很好的解决方案如何保持 wrap_content 的宽度但仍然不忽略边距?
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:text="@string/longstring"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
在按钮中添加以下行 xml 以便按钮尊重边距
app:layout_constrainedWidth="true"
输出
最简单的解决方案是您必须在按钮的字符串中使用 /n 以使按钮文本不扩展
例如"This is a string then /n It will be on the next line"
这样我认为你的按钮不会忽略边距并显示里面的文本
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:text="@string/longstring"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constrainedWidth="true" />
</androidx.constraintlayout.widget.ConstraintLayout>