对于长文本,有些词超出范围。如何正确转账?taskView 中的长文本 = "Gjjjjfghfhgfhfhgfhgfhggfh fhghfgfgf gfhyyfgh fhfffgh fgfhhf fhhf hghg 不在房间内工作。" 根据转移,但它是不正确的。
<?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="match_parent"
android:paddingBottom="10dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="4dp"
android:background="@drawable/customborder">
<TextView
android:id="@+id/rectangleNumber"
android:layout_width="60dp"
android:layout_height="28dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:background="@drawable/rectangle"
android:gravity="center_vertical|center_horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/dateTimeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/montserrat"
app:layout_constraintStart_toStartOf="@+id/rectangleNumber"
app:layout_constraintTop_toBottomOf="@+id/rectangleNumber" />
<TextView
android:id="@+id/address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_medium"
app:layout_constraintStart_toStartOf="@+id/dateTimeView"
app:layout_constraintTop_toBottomOf="@+id/dateTimeView" />
<TextView
android:id="@+id/cvalView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_medium"
app:layout_constraintStart_toStartOf="@+id/address"
app:layout_constraintTop_toBottomOf="@+id/address" />
<TextView
android:id="@+id/taskView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:fontFamily="@font/poppins_medium"
app:layout_constraintStart_toStartOf="@+id/cvalView"
app:layout_constraintTop_toBottomOf="@+id/cvalView" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/montserrat"
app:layout_constraintStart_toStartOf="@+id/taskView"
app:layout_constraintTop_toBottomOf="@+id/taskView" />
<Button
android:id="@+id/agreeBtn"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:background="@drawable/rectangle"
android:backgroundTint="#00CC4F"
android:fontFamily="@font/montserrat"
android:text="Принять"
android:textColor="#FFFFFF"
app:layout_constraintStart_toStartOf="@+id/description"
app:layout_constraintTop_toBottomOf="@+id/description" />
<Button
android:id="@+id/disagreeBtn"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_marginLeft="16dp"
android:layout_marginBottom="8dp"
android:backgroundTint="#F23B51"
android:text="Отклонить"
android:textColor="#FFFFFF"
android:fontFamily="@font/montserrat"
android:background="@drawable/rectangle"
app:layout_constraintLeft_toRightOf="@+id/agreeBtn"
app:layout_constraintTop_toTopOf="@+id/agreeBtn" />
</androidx.constraintlayout.widget.ConstraintLayout>
为了让ConstraintLayout内的TextView能够正确显示长文本,首先必须将此组件绑定到容器的父边缘,或者最近的相邻元素,并将宽度值设置为 0dp android:layout_width="0dp。
示例 #1:
还有另一种选择。在这种情况下,我们只是将TextView的宽度拉伸到容器android:layout_width="match_parent"的全长。结果是一样的,文本换行就好了。但是,如果您决定将 2 个TextView组件放在同一行上,则此技巧将不起作用。
示例 #2
此外,我可以建议您使用ellipsize和maxLines等属性。如果文本长于给定值,它将在文本末尾添加一个省略号。
示例#3:
随附的屏幕截图解决您的问题:
Z.Y. 我建议您在码头更近一点地熟悉ConstraintLayout组件,另外您可以观看美丽的Rebecca Franks的有关此组件的视频,这是youtube频道上的视频。
Z.Y.S. 我希望我解释清楚了一切,如果您有任何问题,请询问。
试试这样:
对标记的一般评论: 使用 ConstraintLayout 时,我建议您不要绑定到前一个元素,而是绑定到真正存在依赖关系的元素。也就是说,您为 rectangleNumber 设置了边距,然后我们将其余元素绑定到它,而不是相互绑定 - 这使得绑定更加明确。否则,将失去对什么缩进的理解。嗯,最好总是绑定至少三个边。
如果文本使用 /u0020 而不是空格(Unicode 字符 SPACE),则此字符不被视为空格,并且沿行的长度进行传输