ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能。我们都知道,在传统的Android开发当中,界面基本都是靠编写XML代码完成的,虽然Android Studio也支持可视化的方式来编写界面,但是操作起来并不方便,我也一直都不推荐使用可视化的方式来编写Android应用程序的界面。

而ConstraintLayout就是为了解决这一现状而出现的。它和传统编写界面的方式恰恰相反,ConstraintLayout非常适合使用可视化的方式来编写界面,但并不太适合使用XML的方式来进行编写。当然,可视化操作的背后仍然还是使用的XML代码来实现的,只不过这些代码是由Android Studio根据我们的操作自动生成的。

另外,ConstraintLayout还有一个优点,它可以有效地解决布局嵌套过多的问题。我们平时编写界面,复杂的布局总会伴随着多层的嵌套,而嵌套越多,程序的性能也就越差。ConstraintLayout则是使用约束的方式来指定各个控件的位置和关系的,它有点类似于RelativeLayout,但远比RelativeLayout要更强大。

为了要使用ConstraintLayout,我们需要在app/build.gradle文件中添加ConstraintLayout的依赖,如下所示。

dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
}

目前ConstraintLayout库最新的版本是1.0.0-beta4,还没有推出正式稳定版本

打开res/layout/activity_main.xml文件,Android Studio自动创建的这个布局默认使用的是RelativeLayout,我们可以通过如下操作将它转换成ConstraintLayout。

转换完成之后,原RelativeLayout中的内容也会自动转换到ConstraintLayout中


具体操作学习详见:http://blog.csdn.net/guolin_blog/article/details/53122387

Inspector最中间的那个正方形区域,它是用来控制控件大小的。一共有三种模式可选,每种模式都使用了一种不同的符号表示,点击符号即可进行切换。

  • 表示wrap content,这个我们很熟悉了,不需要进行什么解释。
  • 表示固定值,也就是给控件指定了一个固定的长度或者宽度值。
  • 表示any size,它有点类似于match parent,但和match parent并不一样,是属于ConstraintLayout中特有的一种大小控制方式,下面我们来重点讲解一下。

  自动添加约束的方式主要有两种,一种叫Autoconnect,一种叫Inference


本文学习来源:http://blog.csdn.net/guolin_blog/article/details/53122387


最新文章

  1. 谷歌Chrome浏览器开发者工具的基础功能
  2. HDU1712简单的分组背包
  3. 值初始化-new
  4. 介绍一个超好用的HICHARTS扩展插件
  5. linux下使用NFS挂载文件系统
  6. XML (DOM解析) 看看就行
  7. c语言:从一组数据中选出可以组成三角形并且周长最长的三个数(简单)
  8. Deploying Customizations in Oracle E-Business Suite Release 12.2
  9. Exp4 恶意代码分析
  10. python里的input
  11. MySQL 8 中新的复制功能
  12. Python yield的用法
  13. spring-cloud-starter-feign 等jar无法reimport的解决方案
  14. elk系统通过nginx添加对kibana的登录认证
  15. Linux基础命令---文本过滤colrm
  16. background 的一些 小的细节: 1, 背景色覆盖范围: border+ width+ padding ;背景图覆盖范围: width + padding ; 2设置多个背景图片 ; 3) background-position定位百分比的计算方式: 4)background-clip 和 background-origin 的区别
  17. SDOI2017 R2泛做
  18. Spyder简述
  19. 模拟Excel中SUBSTITUTE函数
  20. Django中多种重定向方法使用

热门文章

  1. Lua游戏逆向及破解方法介绍
  2. “美登杯”上海市高校大学生程序设计邀请赛 **D. 小花梨的取石子游戏**
  3. Web UI开发推荐!Kendo UI for jQuery自定义小部件——处理事件
  4. H5微信分享相关规范
  5. hive日期函数-原生函数(二)
  6. es6 模块编译 *** is not function
  7. 【JZOJ5603】【NOI2018模拟3.27】Xjz
  8. hdu 6070 Dirt Ratio
  9. 【CUDA 基础】3.2 理解线程束执行的本质(Part I)
  10. Comet OJ - Contest #3 D 可爱的菜菜子 线段树+线性基