Android新特性介绍,ConstraintLayout完全解析
今天给⼤家带来2017年的第⼀篇⽂章,这⾥先祝⼤家新年好。
本篇⽂章的主题是ConstraintLayout。其实ConstraintLayout是Android Studio 2.2中主要的新增功能之⼀,也是Google在去年的I/O ⼤会上重点宣传的⼀个功能。我们都知道,在传统的Android开发当中,界⾯基本都是靠编写XML代码完成的,虽然Android Studio也⽀持可视化的⽅式来编写界⾯,但是操作起来并不⽅便,我也⼀直都不推荐使⽤可视化的⽅式来编写Android应⽤程序的界⾯。
⽽ConstraintLayout就是为了解决这⼀现状⽽出现的。它和传统编写界⾯的⽅式恰恰相反,ConstraintLayout⾮常适合使⽤可视化的⽅式来编写界⾯,但并不太适合使⽤XML的⽅式来进⾏编写。当然,可视化操作的背后仍然还是使⽤的XML代码来实现的,只不过这些代码是由Android Studio根据我们的操作⾃动⽣成的。
另外,ConstraintLayout还有⼀个优点,它可以有效地解决布局嵌套过多的问题。我们平时编写界⾯,复杂的布局总会伴随着多层的嵌套,⽽嵌套越多,程序的性能也就越差。ConstraintLayout则是使⽤约束的⽅式来指定各个控件的位置和关系的,它有点类似于RelativeLayout,但远⽐RelativeLayout要更强⼤。
其实ConstraintLayout属于Android Studio 2.2的新特性,我在去年写《第⼆⾏代码》的时候就⾮常想要
将这部分内容加⼊到新书⾥⾯,但是在尝试之后还是放弃了。因为ConstraintLayout的⽤法很多都是对控件进⾏拖拽,只⽤⽂字或者是⼀些静态图⽚实在太难将它的⽤法表达清楚了,因此不太适合写到书上。我当时的想法就是在博客上⾯写⼀篇ConstraintLayout的⽤法讲解,来弥补⼀下《第⼆⾏代码》中缺失的这部分新特性,那么今天这篇⽂章来了。
开始
下⾯我们开始⽤边学边练的⽅式来进⾏学习,⾸先打开你的Android Studio,并新建⼀个ConstraintLayoutTest项⽬。另外,确保你的Android Studio是2.2或以上版本。
为了要使⽤ConstraintLayout,我们需要在adle⽂件中添加ConstraintLayout的依赖,如下所⽰。
dependencies {
compile 'com.straint:constraint-layout:1.0.0-beta4'
}
⽬前ConstraintLayout库最新的版本是1.0.0-beta4,还没有推出正式稳定版本,不过这并不影响我们提前进⾏学习和使⽤。
现在打开res/layout/l⽂件,由于这是⼀个新建的空项⽬,Android Studio会⾃动帮我们创建好⼀个布局,如下图所⽰。
不过,Android Studio⾃动创建的这个布局默认使⽤的是RelativeLayout,我们可以通过如下操作将它转换成ConstraintLayout。
转换完成之后,原RelativeLayout中的内容也会⾃动转换到ConstraintLayout中,⽐如图中的TextView。如果你不需要它的话,可以选中这个控件,然后按键盘上的Delete键即可删除。
我们可以看到,现在主操作区域内有两个类似于⼿机屏幕的界⾯,左边的是预览界⾯,右边的是蓝图界⾯。这两部分都可以⽤于进⾏布局编辑⼯作,区别是左边部分主要⽤于预览最终的界⾯效果,右边部分主要⽤于观察界⾯内各个控件的约束情况。
基本操作
下⾯我们来学习⼀些具体的操作吧,ConstraintLayout的基本⽤法很简单,⽐如我们想要向布局中添加⼀个按钮,那么只需要从左侧的Palette区域拖⼀个Button进去就可以了,如下图所⽰。
android最新版虽说现在Button已经添加到界⾯上了,但是由于我们还没有给Button添加任何的约束,因此Button并不知道⾃⼰应该出现在什么位置。现在我们在预览界⾯上看到的Button位置并不是它最终运⾏后的实际
位置,如果⼀个控件没有添加任何约束的话,它在运⾏之后会⾃动位于界⾯的左上⾓。
那么下⾯我们就来给Button添加约束,每个控件的约束都分为垂直和⽔平两类,⼀共可以在四个⽅向上给控件添加约束,如下图所⽰。
上图中Button的上下左右各有⼀个圆圈,这圆圈就是⽤来添加约束的,我们可以将约束添加到ConstraintLayout,也可以将约束添加到另⼀个控件。⽐如说,想让Button位于布局的右下⾓,就可以这样添加约束,如下图所⽰。
我们给Button的右边和下边添加了约束,因此Button就会将⾃⼰定位到布局的右下⾓了。类似地,如果我们想要让Button居中显⽰,那么就需要给它的上下左右都添加约束,如下图所⽰。
这就是添加约束最基本的⽤法了。
除此之外,我们还可以使⽤约束让⼀个控件相对于另⼀个控件进⾏定位。⽐如说,我们希望再添加⼀个Button,让它位于第⼀个Button的正下⽅,并且间距64dp,那么操作如下所⽰。
现在添加约束的⽅式我们已经学完了,那么该怎样删除约束呢?其实也很简单,删除约束的⽅式⼀共有三种,第⼀种⽤于删除⼀个单独的约束,将⿏标悬浮在某个约束的圆圈上,然后该圆圈会变成红⾊,这个时候单击⼀下就能删除了,如下图所⽰。
第⼆种⽤于删除某⼀个控件的所有约束,选中⼀个控件,然后它的左下⾓会出现⼀个删除约束的图标,点击该图标就能删除当前控件的所有约束了,如下所⽰。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。