Android ConstraintLayout TextView 不换行 chain_style 水平打包

Android ConstraintLayout TextView does not wrap in chain_style packed horizontal

我有这样的约束,在文本视图之间创建 chain_style 打包,如果文本视图定义了 wrap_content 它不会换行,如果设置为 0dp,它会占用所有可用的 space 所以存档标签总是在布局的右侧,而不仅仅是在第一个文本视图之后

 <TextView
            android:id="@+id/nameTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="@{deal.name}"
            tools:text="Deal Name Deal Name Deal Name Deal Name Deal Name Deal Name Deal Name"

            style="@style/ItemDealTitleTextAppearance"
            android:autoSizeTextType="none"


            app:layout_constraintHorizontal_bias="0.0"

            android:layout_marginStart="24dp"
            android:layout_marginTop="4dp"
            android:layout_marginBottom="4dp"

            app:layout_constraintHorizontal_chainStyle="packed"

            android:layout_marginEnd="100dp"

            app:layout_constraintTop_toBottomOf="@id/amountTextView"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintBottom_toTopOf="@id/verticalFlow"
            app:layout_constraintEnd_toStartOf="@id/archivedTextView"
            />

        <TextView
            android:id="@+id/archivedTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            style="@style/ArchiveLabelStyle"

            android:paddingStart="4dp"
            android:paddingEnd="4dp"

            app:visibleGone="@{deal.isArchived == true}"

            android:text="Archived"

            android:layout_marginEnd="24dp"
            android:layout_marginStart="16dp"

            app:layout_constraintStart_toEndOf="@id/nameTextView"

            app:layout_constraintTop_toTopOf="@id/nameTextView" />

现在,没有链,因为右边的 TextView 没有结束约束。将 app:layout_constraintEnd_toEndOf="parent" 约束添加到 archivedTextView 以创建有效的水平链。

app:layout_constrainedWidth="true" 添加到 nameTextView 并保持其宽度为 android:layout_width="wrap_content"

这将使长文本保持在约束范围内并使其换行。