简介
ConstraintLayout允许你在不使用任何嵌套的情况下创建大型而又复杂的布局。它与RelativeLayout非常相似,所有的view都依赖于兄弟控件和父控件的相对关系。但是,ConstraintLayout比RelativeLayout更加灵活且在Android Studio的布局编辑器中更易于使用。
由于ConstraintLayout所能做的一切都可以从布局编辑器的可视化工具中直接获取,所以你可以完全使用拖拽的方式来构建布局。此外,ConstraintLayout可以兼容到Android 2.3 (API9),所以我们不用担心兼容上的问题。
预览
想要在ConstraintLayout中定义一个View的位置,你至少需要添加两个约束:一个水平方向,一个竖直方向。当然,你可以添加更多的约束。
如果你没有指定某个方向上的约束,那么该View将会在坐标(0,0)或(x,0)或(0,y)处显示(这取决于你没有指定哪个方向的约束)。
如下图,TextViewC没有指定垂直方向的约束,虽然在预览时你看到的效果没有问题,但是运行后会发现,该View的显示坐标为(x,0)。
所以在使用约束时务必要检查下布局文件有没有提示约束问题。