现在创建默认布局都是ConstraintLayout了,所以作为一个安卓开发者不会的话也说不过去,今天就来学习和总结一下吧。
ConstraintLayout有一点点像RelativeLayout,因为它们都需要为控件添加相对于父控件的位置属性。
话不多说开始吧。
首先拖入三个 TextView 控件
将控件拖入后如果没有设置位置依赖(相对于父控件的位置的属性)就会出现感叹号。
每个控件必须添加垂直方向的位置依赖和水平方向的位置依赖
最快捷的方法就是点击这个魔棒,便可以自动帮你设置好位置依赖了。魔棒左边的图标是用来删除所有位置依赖的。
将三个控件选择后点击左上角的按钮可以看到六个选项。下面分别解释一下它们的作用。
**Pack Horizontally:**将选择的控件在水平方向紧凑排列,也可以理解为将控件以水平方向靠拢。效果如图:
如果控件的排列方式是这样的
使用**Pack Horizontally:**后的效果是这样的,因此可以得出这样的结果:当几个控件不在同一水平的时候会以第一个控件的左边为基准线,并向之靠拢。
**Pack Vertically:**将选择的控件在垂直方向紧凑排列,也可以理解为将控件以垂直方向靠拢。效果如图:
初始效果:
如果是这种在垂直方向没有对齐排列的,结果图如下:
也可以得出如果在垂直方向没有对齐排列的话也会以第一个控件的上方为基准并靠拢。
如果是垂直排列的
效果如下:
Expand Horizontally: 水平拉伸。
效果:
效果:
Expand Vertically垂直方向拉伸。
效果:
效果:
注意上方的操作并没有生成实际性的位置依赖。
**Distribute Horizontally:**以第一个控件为基础,为后面的控件添加位于上一个控件的右边的位置依赖。类似于RelativeLayoutd 的 layout_toRightOf
**Distribute Vertically:**以第一个控件为基础,为后面的控件添加位于上一个控件的下边的位置依赖。
下面介绍位置对齐方式
注意只有在选择了多个控件的情况下才有上面这部分选项,如果只选择了一个控件那只有下部分的选项。
Left Edges: 以第一个控件为基础左对齐。
如果三个控件在同一水平面的话,就会挤在一起。
Right Edges: 以第一个控件为基础右对齐。参考上面Left Edges即可。Horizontaltally centers 以第一个控件为基础中心对齐。
Vertically centers 以第一个控件为基础上下对齐。并会为
Top Edges: 以第一个控件为基础顶部对齐。
Top Edges: 以第一个控件为基础底部对齐。参考上面Top Edges即可。**BaseLines:**以第一个控件为基础,并与它的文字底部对齐
Vertically : 以父控件为准,垂直对齐
**Horizontaltally :**以父控件为准,水平对齐