一、概述:
ConstraintLayout允许您使用平面视图层次结构(无嵌套视图组)创建大而复杂的布局。 它与RelativeLayout类似,所有的视图都是根据兄弟视图和父布局之间的关系来布局的,但是它比RelativeLayout更灵活,并且更易于在Android Studio的布局编辑器中使用。ConstraintLayout的所有功能都可以直接从布局编辑器的可视化工具中使用,因为布局API和布局编辑器是专门为对方构建的。 所以你可以使用ConstraintLayout完全通过拖放操作来构建你的布局,而不是编辑XML。
二、自己的操作:手写各约束布局属性
1、首先需要引入我们的ConstraintLayout,在build.gradle中加入:(现在创建应用默认加入)
compile'com.android.support.constraint:constraint-layout:1.0.2'
2、我们使用ConstraintLayout来写
tv1设置了://父布局的左上角
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tv2设置了:tv2在tv1的右侧,tv2的右侧和父布局对其,tv2和tv1顶部对齐;
app:layout_constraintLeft_toRightOf="@id/tv1",
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv1"
tv3设置了:tv3在tv1的右侧,tv3和tv1底部对其。
app:layout_constraintLeft_toRightOf="@id/tv1"
app:layout_constraintBottom_toBottomOf="@id/tv1"
与之类似的还有几个属性:
layout_constraintRight_toLeftOf
layout_constraintRight_toRightOf
layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf
总体来说如果嵌套很多层的使用这个替换还是有必要的,就是简单的玩了一下等后面做复杂布局再继续完善吧
三、API 参考文档:
四、来自大牛的启蒙:
可视化界面学习推荐:郭霖:Android新特性介绍,ConstraintLayout完全解析
手写各约束布局属性:鸿洋:ConstraintLayout 完全解析 快来优化你的布局吧