文档章节

ConstraintLayout布局学习笔记

GalaxyBruce
 GalaxyBruce
发布于 2017/02/12 11:31
字数 748
阅读 50
收藏 0

参考资料:
Constraint 代码实验室
Android新特性介绍,ConstraintLayout完全解析

主要知识点:
1、手动创建约束
2、自动创建约束
3、推理创建约束

1、引入 compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5' 在layout中Palette中点击ConstraintLayout会自动引入
2、同一个方向上的两个约束必须成对出现,即constraintBottom和constraintTop或者constraintLeft和constraintRight同时出现时,layout_constraintVertical_bias才生效,这时候才能看到有波浪线。
3、layout_constraintVertical_bias 总的高度减去该控件的高度再减去该控件的margintop和marginbottom剩余的高度我们用100%表示, 那么layout_constraintVertical_bias的值表示的就是该控件上边的外边距占剩余高度的比例。
4、constraintDimensionRatio 让控件的宽高以固定的比例展示(如:app:layout_constraintDimensionRatio="1:3"表示宽高比为1:3) 这个属性生效需要以下条件:

  • left ,right ,top ,bottom四条边都需要约束,bottom的约束可以用baseline代替。
  • 宽高至少有一个是0dp或者-1dp,如果都是0dp的则会以父布局能容下的最大范围显示。

5、在ConstraintLayout的子布局中如果有ViewGroup类型的控件(如:相对布局,线性布局)这类控件的子空间不能使用约束的属性。
6、Autoconnect 仅为当前正在移动的控件创建约束是很重要。一般会有虚线出现时表示自动约束成功。
7、推理创建的约束依赖于添加到布局的元素的类型和他们的尺寸.。
8、 *_creator属性,默认是0表示对应的约束是人为创建的,1表示是推理创建的约束。
9、ConstrainLayout支持三种尺寸:Exact,WrapContent,AnySize;不支持match_parent,简单的说就是Any Size就已经实现了match_parent的功能,将layout_width或layout_heigth设为0dp即可。
10、Guideline只支持他自己的四中属性(orientation layout_constraintGuide_begin layout_constraintGuide_end layout_constraintGuide_percent),点击箭头可以在后三种模式间切换。
11、alpha7中去掉了layout_constraintCenterX_toCenterX和layout_constraintCenterY_toCenterY 属性,如果想让View2和View1居中对齐,可以这样:

app:layout_constraintStart_toStartOf="xxxid"
app:layout_constraintEnd_toEndOf="xxxid"
app:layout_constraintHorizontal_bias=".5"

12、Chain Style
a、一组控件全选中,应用工具栏的Center Horizatolly或者Center Vertical哪个方向上的距离大,哪个方向的Chain Style才生效,所以想在哪个方向上应用Chain Style,应该先把一组view在哪个方向上摆差不多齐
b、经过第一步后,再任意选中该组中的view,点击链条状的图标,就可以在第一个view(Chain head)上自动添加属性layout_constraintVertical_chainStyle,连续点击会在几种模式间切换。
c、Chain 的属性由该群组的第一个View也就是Chain head 上的属性所控制,所以第二部中会自动把属性添加在第一个view上。
d、总共四个属性 layout_constraintHorizontal_chainStyle layout_constraintHorizontal_weight layout_constraintVertical_chainStyle layout_constraintVertical_weight
e、layout_constraintHorizontal_weight和layout_constraintVertical_weight与LinearLayout中类似,如需要把尺寸设置为0dp,只有在spread或者spread_inside模式下有效

© 著作权归作者所有

共有 人打赏支持
GalaxyBruce
粉丝 2
博文 75
码字总数 35340
作品 0
南京
高级程序员
ConstraintLayout学习总结

学习参考 个人不推荐使用拖拽的方式,看的自己眼花缭乱,控件多了,很影响效率。必须掌握手写代码的方式直接在xml里面编写,可以参考鸿扬大神的这篇文章,这篇文章学完你基本上就掌握了所有相...

01/23
0
0
ConstraintLayout 完全解析 快来优化你的布局吧

本文已在我的公众号hongyangAndroid原创首发。 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/78011599 本文出自张鸿洋的博客 本文已在我的公众号hongyangAndroid原创...

lmj623565791
2017/09/17
0
0
Android约束布局ConstraintLayout 项目实战攻略

前言 ConstraintLayout即约束布局, 在2016年由Google I/O推出. 从支持力度而言, 将成为主流布局样式, 完全代替其他布局, 减少布局的层级, 优化渲染性能. 且自Android Studio 2.3起创建新的A...

SilenceOO
2017/11/21
0
0
Android新特性介绍,ConstraintLayout完全解析

转载请注明出处:http://blog.csdn.net/guolinblog/article/details/53122387 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。 今天给...

sinyu890807
2017/02/03
0
0
Android新特性介绍,ConstraintLayout完全解析

今天给大家带来2017年的第一篇文章,这里先祝大家新年好。 本篇文章的主题是ConstraintLayout。其实ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上...

猴亮屏
2017/06/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++ gflags

gflags是google一个开源的处理命令行参数的库,相比getopt,更加容易使用。 定义参数 gflags主要支持的参数类型包括 DEFINEbool: boolean DEFINEint32: 32-bit integer DEFINEint64: 64-bit ...

SibylY
27分钟前
0
0
intellij IDEA Properties中文unicode转码问题

在IDEA中创建了properties文件,发现默认中文不会自动进行unicode转码。如下 在project settings - File Encoding,在标红的选项上打上勾,确定即可 效果图如下: unicode转码后效果...

muzi1994
28分钟前
0
0
Java IO类库之PipedWriter

一、PipedWriter介绍 PipedWriter是字符管道输出流,继承自Writer,功能与PipedOutputStream类似,通过与PipedReader组合使用实现类似管道的功能,在多线程环境下,一个线程使用PipedWriter...

老韭菜
32分钟前
0
0
精简分页组件(手写)

需要引入CSS(没错就是这4行) .pagelist { text-align: center; color: #666; width: 100%; clear: both; margin: 20px 0; padding-top: 20px }.pagelist a { color: #666; margin: 0 2px;......

AK灬
33分钟前
3
0
29 岁成为阿里巴巴 P8,工作前 5 年完成晋升 3 连跳,他如何做到?

泡泡是我的好朋友。今年 31 岁,毕业后就进了阿里巴巴,工作五年内从 P4 晋升至 P6、P7、P8。 和他很少聊到工作,但总觉得他有很棒的职场心得,应该分享出来,于是有了这次采访。希望对职场新...

Java填坑之路
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部