ConstrataintLayout
版本1.1.0-beta5提供了一些您正在寻找的更好的维度控制。请参见
release notes
.
具体而言,您可以利用
layout_constraintWidth_default = wrap
这将迫使
TextView
在满足其约束的限制后进行包装。
Wrap提供了一个重要的新行为,小部件的大小调整就像使用了Wrap\u内容一样,但受到连接约束的限制。因此,小部件不会超出端点。
以下XML位置
tv1
和
iv1
在受左侧父对象约束的打包链中,以及
tv2
在右边。
tv1
有
app:layout_constraintWidth_default="wrap"
设置
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginStart="8dp"
android:ellipsize="end"
android:lines="1"
android:text="This is some very long text. How does it behave?"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv1"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_default="wrap"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/iv1"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="8dp"
android:background="#ff9d00"
app:layout_constraintBottom_toBottomOf="@+id/tv1"
app:layout_constraintEnd_toStartOf="@id/tv2"
app:layout_constraintStart_toEndOf="@+id/tv1"
app:layout_constraintTop_toTopOf="@+id/tv1"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="18 000 000 Dollar"
android:textAlignment="viewEnd"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
<android.support.v4.widget.Space
android:id="@+id/spacer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/tv2"
app:layout_constraintEnd_toStartOf="@id/tv2"
app:layout_constraintTop_toTopOf="@id/tv2" />
</android.support.constraint.ConstraintLayout>
下面是长文本布局的外观。。。
... 还有一些简短的文字。。。