google 2016发布会推出了studio 的2.2版本 并新增了 约束布局的功能,这个与ios xcode中的autolayout 很相似。就是在layout xml中你可以看到你当前编辑的视图的相对关系并编辑相对关系。
The constraint-layout library and the UI Builder are available as a preview.
可以下载官方给出的sample代码:
https://github.com/googlecodelabs/constraint-layout.git
使用constraint-layout必要条件
- 你必须是studio 2.2 以上的版本
- 必须引用兼容包ompile 'com.android.support.constraint:constraint-layout:1.0.0-alpha3'在你的build.gradle 中
dependencies {
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha3'
}
以上2个条件满足后 当你打开工程layout的文件夹下的xml文件后 视图就是这样的:
constraint-layout
还有这样的,可以通过右边条件对当前选中的widget的布局调整,相信使用过xcode相对布局的童鞋应该对这个不陌生。
caonstraint-layout
几种类型的约束关系
-
改变大小
通过拉拽 改变widget的大小,通过这个拖这个图标:
Resize -
指定 widget的相对位置,通过拖动下面空心圆图标
相对位置 -
Baseline ,看图应该就很好理解了:
baseline -
偏移量,可以设置水平盒垂直的偏移量:
widget 尺寸
-
任意尺寸,这个就有点像是 match-parent,实际是0dp,图像表示是这样的
- 根据图形自己的大小,就像是wrap_content,图像是这样的
- 固定大小,就是设定的高和宽的指,图形是这样的:
可以在约束布局视图中直接对上面几种约束关系进行变换,如下图:
auto connect
当你拖动一个新的widget到视图中时,它就会自动计算它最好的约束关系和位置,帮你给拖进来的那个widget自动设置位置,当然你如果觉得那个位置不是你想要的话 可以继续调整,自动连接功能默认时开启的,你也可以点击左上角的图标将其关闭,这个功能指针对当前这一个widget而不能时整个布局。
效果图:
自动连接 手动连接
当前layout布局所有widget自动生成约束关系
上面讲到的auto connect 是针对单个widget 拖入layout 当中的,如果 你的视图的位置排好了的话 怎么自动让它生存约束关系是针对整个layout的呢?下面就是inference 功能了,点击 按钮就可以针对当前的布局生存约束关系,
效果如下:
以上由于是初体验,还有其他的功能继续学习和使用,用过之后才能更好的了解,
上面描述的内容也参考了一些资料的讲解,google的官方教程在这里:google教程
网友评论