现在创建默认布局都是ConstraintLayout了,所以作为一个安卓开发者不会的话也说不过去,今天就来学习和总结一下吧。
ConstraintLayout有一点点像RelativeLayout,因为它们都需要为控件添加相对于父控件的位置属性。
话不多说开始吧。

首先拖入三个 TextView 控件

iOS 约束布局最大宽度 约束布局使用的标记是_基准线

将控件拖入后如果没有设置位置依赖(相对于父控件的位置的属性)就会出现感叹号。

每个控件必须添加垂直方向的位置依赖和水平方向的位置依赖

iOS 约束布局最大宽度 约束布局使用的标记是_iOS 约束布局最大宽度_02

最快捷的方法就是点击这个魔棒,便可以自动帮你设置好位置依赖了。魔棒左边的图标是用来删除所有位置依赖的。

iOS 约束布局最大宽度 约束布局使用的标记是_iOS 约束布局最大宽度_03

将三个控件选择后点击左上角的按钮可以看到六个选项。下面分别解释一下它们的作用。
**Pack Horizontally:**将选择的控件在水平方向紧凑排列,也可以理解为将控件以水平方向靠拢。效果如图:

iOS 约束布局最大宽度 约束布局使用的标记是_android_04

如果控件的排列方式是这样的

iOS 约束布局最大宽度 约束布局使用的标记是_android_05

使用**Pack Horizontally:**后的效果是这样的,因此可以得出这样的结果:当几个控件不在同一水平的时候会以第一个控件的左边为基准线,并向之靠拢。

iOS 约束布局最大宽度 约束布局使用的标记是_iOS 约束布局最大宽度_06

**Pack Vertically:**将选择的控件在垂直方向紧凑排列,也可以理解为将控件以垂直方向靠拢。效果如图:

初始效果:

iOS 约束布局最大宽度 约束布局使用的标记是_android_07

如果是这种在垂直方向没有对齐排列的,结果图如下:

iOS 约束布局最大宽度 约束布局使用的标记是_感叹号_08

也可以得出如果在垂直方向没有对齐排列的话也会以第一个控件的上方为基准并靠拢。

如果是垂直排列的

iOS 约束布局最大宽度 约束布局使用的标记是_控件_09


效果如下:

iOS 约束布局最大宽度 约束布局使用的标记是_iOS 约束布局最大宽度_10

Expand Horizontally: 水平拉伸。

iOS 约束布局最大宽度 约束布局使用的标记是_感叹号_08


效果:

iOS 约束布局最大宽度 约束布局使用的标记是_android_12

iOS 约束布局最大宽度 约束布局使用的标记是_感叹号_13


效果:

iOS 约束布局最大宽度 约束布局使用的标记是_android_14


Expand Vertically垂直方向拉伸。

iOS 约束布局最大宽度 约束布局使用的标记是_感叹号_13


效果:

iOS 约束布局最大宽度 约束布局使用的标记是_基准线_16

iOS 约束布局最大宽度 约束布局使用的标记是_感叹号_08


效果:

iOS 约束布局最大宽度 约束布局使用的标记是_android_18

注意上方的操作并没有生成实际性的位置依赖。

**Distribute Horizontally:**以第一个控件为基础,为后面的控件添加位于上一个控件的右边的位置依赖。类似于RelativeLayoutd 的 layout_toRightOf

iOS 约束布局最大宽度 约束布局使用的标记是_基准线_19

**Distribute Vertically:**以第一个控件为基础,为后面的控件添加位于上一个控件的下边的位置依赖。

iOS 约束布局最大宽度 约束布局使用的标记是_iOS 约束布局最大宽度_20

下面介绍位置对齐方式

iOS 约束布局最大宽度 约束布局使用的标记是_android_21


注意只有在选择了多个控件的情况下才有上面这部分选项,如果只选择了一个控件那只有下部分的选项。

Left Edges: 以第一个控件为基础左对齐。

iOS 约束布局最大宽度 约束布局使用的标记是_基准线_22


如果三个控件在同一水平面的话,就会挤在一起。

Right Edges: 以第一个控件为基础右对齐。参考上面Left Edges即可。Horizontaltally centers 以第一个控件为基础中心对齐。

iOS 约束布局最大宽度 约束布局使用的标记是_android_23


Vertically centers 以第一个控件为基础上下对齐。并会为

iOS 约束布局最大宽度 约束布局使用的标记是_iOS 约束布局最大宽度_24


Top Edges: 以第一个控件为基础顶部对齐。

iOS 约束布局最大宽度 约束布局使用的标记是_android_25


Top Edges: 以第一个控件为基础底部对齐。参考上面Top Edges即可。**BaseLines:**以第一个控件为基础,并与它的文字底部对齐

iOS 约束布局最大宽度 约束布局使用的标记是_感叹号_26

Vertically : 以父控件为准,垂直对齐

**Horizontaltally :**以父控件为准,水平对齐