Android ConstraintLayout TextView 不包裹在 chain_style 水平包装中

Mic*_*bro 0 android word-wrap android-constraintlayout

我有这样的约束,在 textviews 之间创建了 chain_style 打包,如果 textview 定义了 wrap_content 它不会换行,如果设置为 0dp 它会占用所有可用空间,因此存档标签始终位于布局的右侧,而不是在第一个 textview 之后

 <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" />
Run Code Online (Sandbox Code Playgroud)

Paw*_*ski 6

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

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

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