文档章节

ConstraintLayout布局学习笔记

GalaxyBruce
 GalaxyBruce
发布于 2017/02/12 11:31
字数 748
阅读 51
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

小白创建一个spring boot项目

进入 https://start.spring.io/

lilugirl
44分钟前
0
0
Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
1
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
1
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
4
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部