ConstraintLayout - 3. 摆放位置

1. 添加约束(Add or remove a constraint)

① 每个view至少有两个约束。横向和纵向至少有一个。
② 横向约束只能指向横向的锚点。
③ 每个约束句柄只能应用于一个约束。但是一个约束锚点可以设置多个约束。

2. 相对位置

以下相当于ReleativeLayout的位置;可以约束到parent、其他view、guideLine、Barrier


layout_constraintLeft_toLeftOf  
layout_constraintRight_toRightOf
layout_constraintTop_toTopOf
layout_constraintBottom_toBottomOf

layout_constraintLeft_toRightOf

layout_constraintRight_toLeftOf

layout_constraintTop_toBottomOf

layout_constraintBottom_toTopOf
3. 文本视图基线BaseLine对齐
app:layout_constraintBaseline_toBaselineOf="@+id/textView2"



BaseLine对齐 GuideLine约束
4. GuideLine约束

对用户不可见,视图可以约束到此线上。


layout_constraintGuide_percent 按照parent比例设置引导线的位置(0-1)
layout_constraintGuide_begin layout_constraintGuide_end 按照dp偏移距离设置引导线位置

5. Barrier约束

跟GuideLine类似是不可见的,视图可以约束到此线上。但是barrier不能设置自己的position,屏障的位置基于屏障其中包含的视图位置。当你想约束一个view在一系列的view一边而不是一个单独的view一边时,屏障是非常好用的。
屏障内的视图可以约束到屏障上。屏障内可以添加GuideLine。

C在A和B的右边 C在A和B的右边
androidx.constraintlayout.widget.Barrier
barrierDirection right / left
constraint_referenced_ids
6. 调整约束偏差(Adjust the constraint bias)

如果设置了相反方向的约束(opposing constraints),约束线会变得弯曲向弹簧一样,代表双向对抗的力。
约束偏差可以调整两边力的大小比例;

双向对抗的力(居中0.5) 位置按比例偏移(0.2)
layout_constraintHorizontal_bias
layout_constraintVertical_bias

你可能感兴趣的:(ConstraintLayout - 3. 摆放位置)