ConstraintLayout 翻译为 约束布局,也有人把它称作 增强型的相对布局,由 2016 年 Google I/O 推出。

扁平式的布局方式,无任何嵌套,减少布局的层级,优化渲染性能。从支持力度而言,将成为主流布局样式,完全代替其他布局。

版本

Android Studio是2.2或以上版本

ConstraintLayout是一个Support库,意味着向前兼容,它可以兼容至API 9,也就是Android 2.3,鉴于现在市场上手机基本都是2.3及以上的,所以如果不是特殊情况,开发者可以不用考虑版本问题。

需要在build.gradle中加入

 implementation 'com.android.support.constraint:constraint-layout:1.1.1'

新特性

相对于传统布局,ConstraintLayout在以下方面提供了一些新的特性:

  • 相对定位
  • 外边距
  • 居中和倾向
  • 可见性的表现
  • 尺寸约束
  • Chain
  • 辅助工具

Layout Editor全景

  • 工具栏(Toolbar):提供在编辑器中配置布局外观和编辑布局属性的按钮
  • Palette:提供小部件和布局的列表,您可以将它们拖动到编辑器内的布局中
  • Component Tree:显示布局的视图层次结构。在此处点击某个项目将看到它在编辑器中被选中
  • 设计视图:用来显示界面
  • blueprint视图:在该视图中可以清晰的看到布局相关信息,约束关系、边距等
  • 属性(Attributes):针对当前选择的视图提供属性控件

Design和Text选项卡

  • Design:可以在LayoutEditor中配置布局的外观
  • Text :查看xml中的布局代码,同时在Preview窗口中查看当前界面显示

优点:

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

android -------- ConstraintLayout介绍 (一)的更多相关文章

  1. android -------- ConstraintLayout Group和goneMargin(五)

    前面的文章 ConstraintLayout 介绍 (一) ConstraintLayout约束属性 (二) ConstraintLayout 宽高比和偏移量比(三) ConstraintLayout ...

  2. android -------- ConstraintLayout Guideline和Barrier(四)

    前面的文章 ConstraintLayout 介绍 (一) ConstraintLayout约束属性 (二) ConstraintLayout 宽高比和偏移量比(三) 此博文主要讲解:Guidelin ...

  3. android -------- ConstraintLayout 宽高比和偏移量比(三)

    前面的文章 ConstraintLayout 介绍 (一) ConstraintLayout约束属性 (二) 此博文主要讲解: app:layout_constraintHorizontal_bias ...

  4. android -------- ConstraintLayout 约束属性(二)

    ConstraintLayout 介绍 (一) ConstraintLayout 最基本的属性控制有以下几个,即 layout_constraintXXX_toYYYOf 格式的属性,即将“View ...

  5. Android ConstraintLayout详解(from jianshu)

    Android ConstraintLayout详解 https://www.jianshu.com/p/a8b49ff64cd3 1. 概述     在本篇文章中,你会学习到有关Constraint ...

  6. Android ConstraintLayout约束控件链接整理

    Android新特性介绍,ConstraintLayout完全解析 探索Android ConstraintLayout布局 了解使用Android ConstraintLayout

  7. android Animation介绍

    Animation介绍: 在Android SDK介绍了2种Animation模式: 1. Tween Animation:间动画,通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即 ...

  8. android AsyncTask介绍(转)

    android AsyncTask介绍 AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接 ...

  9. Android monkey介绍

    Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...

随机推荐

  1. maven项目更新之后,JDK版本成为1.5

    描述:maven项目更新之后,JDK版本成为1.5? 解决:在pom.xml文件中配置java版本,选中build path 设置之后,刷新maven项目

  2. 分块读取Blob字段数据(Oracle)

    试过了MSSQL的分块读取Blob字段,又尝试在Oracle下完成,发现还是可行的. 首先建立一个存储过程: create or replace procedure PRO_GET_BLOB(     ...

  3. 初识Java框架

    Spring boot>spring>spring mvc SSH:struts2+spring+hibernate SSM(SSH的改进): (过去)spring+struts2+MyB ...

  4. Unity3D代码动态修改材质球的颜色

    代码动态修改材质球的颜色: gameObject.GetComponent<Renderer>().material.color=Color.red;//当材质球的Shader为标准时,可 ...

  5. C++笔记(2017/2/9)

    this指针 this指针作用就是指向成员函数所作用的对象. 非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针. 静态成员函数中不能使用this指针. 静态成员 static 定义 ...

  6. Ambari配置Hive,Hive的使用

    mysql安装,hive环境的搭建 ambari部署hadoop 博客大牛:董的博客 ambari使用 ambari官方文档 hadoop 2.0 详细配置教程 使用Ambari快速部署Hadoop大 ...

  7. 转载:linux tar 解压命令总结

    把常用的tar解压命令总结下,当作备忘: tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其 ...

  8. 3、python内置类型(0529)

    python的内置对象类型以及支持的运算 python对象的相关术语 python程序中保存的所有数据都是围绕对象这个概念展开的 程序中存储的所有数据都是对象 每个对象都有一个身份.一个类型和一个值 ...

  9. 项目Alpha冲刺--3/10

    项目Alpha冲刺--3/10 1.团队信息 团队名称:基于云的胜利冲锋队 成员信息 队员学号 队员姓名 个人博客地址 备注 221500201 孙文慈 https://www.cnblogs.com ...

  10. (总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL

    (总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL PS:这个是懒人yum快速安装法,用于开发和测试环境很方便,用于没有特殊要求的生产环境也可以.特 ...