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"
。
这将使长文本保持在约束范围内并使其换行。
我有这样的约束,在文本视图之间创建 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"
。
这将使长文本保持在约束范围内并使其换行。