ConstraintLayout中app:layout_constrainedWidth属性的作用及适用场景
ConstraintLayout中
app:layout_constrainedWidth="true"的适用场景 这个属性的核心作用是强制View的宽度遵守已设置的约束条件,避免View因自身尺寸属性(比如wrap_content)突破约束范围。以下是几个典型的使用场景:
限制
wrap_content视图的最大宽度
当你给View设置了wrap_content宽度,同时又通过layout_constraintStart_toXXX和layout_constraintEnd_toXXX给它设定了左右约束范围,但不希望View因为内容过长而撑破这个约束时,就需要开启该属性。比如一个展示长文本的TextView,开启后它会被限制在约束的宽度内,超出的文本会自动换行或截断,而不是无视约束扩展宽度。示例代码:
<TextView android:id="@+id/long_text_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是一段非常长的测试文本,如果不开启constrainedWidth,它会无视左右约束一直延伸" app:layout_constrainedWidth="true" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="@id/right_divider" app:layout_constraintTop_toTopOf="parent"/>在约束链中让
wrap_content视图参与宽度分配
当View处于水平约束链中且宽度设为wrap_content时,默认情况下它会优先适应自身内容,不会参与链的宽度分配。开启layout_constrainedWidth="true"后,它会遵循链的规则(比如chainStyle为spread或packed),和链内其他View一起分配可用宽度,避免出现某个View因内容过长挤占其他View空间的情况。配合尺寸限制属性共同生效
当你给View设置了android:maxWidth或app:layout_constraintWidth_max时,开启该属性可以让约束条件和这些尺寸限制共同作用——View的实际宽度会取约束范围和尺寸限制中的较小值,确保不会超出任何一个限制条件。
内容的提问来源于stack exchange,提问作者Lechius
相关产品推荐
相关产品推荐

