ConstraintLayout
翻译为 约束布局,也有人把它称做 加强型的相对布局,由 2016 年 Google I/O 推出。html
扁平式的布局方式,无任何嵌套,减小布局的层级,优化渲染性能。从支持力度而言,将成为主流布局样式,彻底代替其余布局。java
版本android
Android Studio是2.2或以上版本编辑器
ConstraintLayout是一个Support库,意味着向前兼容,它能够兼容至API 9,也就是Android 2.3,鉴于如今市场上手机基本都是2.3及以上的,因此若是不是特殊状况,开发者能够不用考虑版本问题。ide
须要在build.gradle中加入工具
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
新特性布局
相对于传统布局,ConstraintLayout在如下方面提供了一些新的特性:性能
优势:gradle
1.性能更优,在测量/布局阶段的性能比RelativeLayout高40%,详细对比可见:解析ConstraintLayout的性能优点
优化
2.基本全部复杂的布局都只须要一层,之因此说是基本全部,意味着有特殊状况,就须要嵌套了
3.百分比对齐自适应,美滋滋,能够使用Guidelines参照线,美滋滋。
4.能够直接拖拽控件,手动调整参数。
缺点:
1.界面控件很复杂的时候,拖拉卡顿,以及容易误操做;
2.更多的新增的XML属性;
3.不支持gravity属性;
4.每一个控件都必须有id;
拖拽控件能够参考郭霖大神的博客: https://blog.csdn.net/guolin_blog/article/details/53122387
官网:
https://constraintlayout.com/basics/barriers.html
https://developer.android.google.cn/reference/android/support/constraint/ConstraintLayout#Chains