【问题标题】:Android ConstraintLayout TextView does not wrap in chain_style packed horizontalAndroid ConstraintLayout TextView 不包装在 chain_style 包装的水平
【发布时间】:2020-10-04 17:36:02
【问题描述】:

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

 <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" />

【问题讨论】:

  • 分享您的完整布局以及您想要实现的目标。
  • 如果使用layout_width="0dp",则必须指定开始和结束的约束,如果使用layout_height="0dp",则必须指定上下约束,0dp 表示match_constraint
  • 如果我使用换行内容然后第一个长文本视图不会换行,则它不起作用。如果我使用 0dp 然后它会换行,但第二个文本视图总是被推到右边缘,即使第一个文本视图中只有 2 个单词。

标签: android word-wrap android-constraintlayout


【解决方案1】:

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

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

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

【讨论】:

  • 我有 app:layout_constraintEnd_toEndOf 但没有将其复制粘贴到 stackoverflow。但这里关键的变化是添加 app:layout_constrainedWidth="true" 来修复这个布局。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
相关资源
最近更新 更多