百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

什么是约束布局(Constraint Layout)?性能怎样?有哪些注意事项?

yuyutoo 2024-10-19 11:08 24 浏览 0 评论

同学们,先来个小调查


约束布局-Constraint Layout

What is this?

Constraint 美[k?n?strent] 约束

  • 减少多层嵌套布局

  • 尽可能的使布局 宽而短,而不是 窄而长

  • 简单来说,她是相对布局的升级版本,但是区别与相对布局更加强调约束。何为约束,即控件之间的关系。

  • 她能让你的布局更加扁平化,一般来说一个界面一层就够了;同时借助于AS我们能极其简单的完成界面布局。

一些分析

  • 对于单层的布局,LinearLayouts表现出更加优秀的性能

  • RelativeLayouts经常需要measure所有子节点两次才能把子节点合理的布局。如果子节点设置了weights属性,LinearLayouts也需要measure这些节点两次,才能获得精确的展示尺寸。如果LinearLayouts或者RelativeLayouts被套嵌使用,measure所费时间可能会呈指数级增长(两个套嵌的views会有四次measure,三个套嵌的views会有8次的measure)

性能对比-耗时

测试用例:布局层级为1层

  • LinearLayout: 2.637(measuer 0.486 layout 0.093 draw 2.058)

  • RelativeLayout : 10.4071ms(measuer 1.3661 layout 0.227 draw 8.814)

  • ConstraintLayout : 13.128ms.(measuer 6.742 layout 0.201 draw 6.185)

测试用例:布局层级为4个View(2层)

  • LinearLayout : 2.46 (measuer 0.125 layout 0.085 draw 2.25)

  • RelativeLayout : 2.632(measuer 0.184 layout 0.072 draw 2.376)

  • ConstraintLayout : 3.634(measuer 1.264 layout 0.103 draw 2.267)

测试用例:布局层级为3/4层

  • LinearLayout & FrameLayout : 3.006ms

  • RelativeLayout : 2.8914ms

  • ConstraintLayout : 2.606ms

安卓布局层级性能对比

约束布局的属性

常用属性

中间对齐

百分比bias

Chain链式结构

基准线Guidelines

Ratio比例大小属性

开发过程中的注意事项

layout_marginLeft和layout_marginRight不起作用: 当一个控件左右都约束了parent,可能会遇到左右间隔不起作用的情况,原因是android:layout_width设置了match_parent或者wrap_content,需要改为0dp变成Match Constraint才会起作用。

布局优化

  • 删除不必要的background

  • 减少嵌套层级,选用合理的方式

  • 使用merge

“ Enjoy your coding time!欢迎喜欢安卓开发的同学关注我,会有更多技术文章跟大家分享 ”

相关推荐

高一高二第一次月考认真作答(高二第一次月考的重要性)

正在进行高一、高二第一次月考,同学们正在认真完成化学试卷,研究考纲,探究考点,夯实基础,迎战高考!

山清水秀,盛世今朝(山清水秀出处)

万千星河,神州妖娆!山清水秀,盛世今朝!龙腾虎跃,锦绣前程!千里婵娟,祝福永远!

我校二模成绩已新鲜出炉(二模考试成绩)

充电加油备战高考,积极努力再拼一搏...

Argon Design向瑞萨电子有限公司提供Argon Streams VP9许可证

英国剑桥--(美国商业资讯)--领先的先进视频验证解决方案提供商ArgonDesignLtd已与日本半导体公司瑞萨电子有限公司(RenesasElectronicsCorporation)签署...

高考倒计时75天(高考倒计时75天励志语)

今天是2022年3月24日星期四,距离2022年高考还有75天时间对于十八岁的高三学子来说,有些事情的确会影响你们的一生,但是没有一件事能决定你们的一生!努力的意义,就是:以后的日子里,放眼望去,全...

期中考试正在进行(期中考试在即)

转眼即瞬,期中考试已到,紧张忙碌的两个月学习,检验的时刻到了。让我们拿出信心和勇气,来挑战自我。面对考验,我们该做的就是沉着,冷静。让知识来一次次洗礼我们的灵魂,让失败和成功迎接一次次的成长。你们可以...

不要浪费了你NAS上的HDMI接口!详解华硕NAS上HDMI接口的妙用

不要浪费了你NAS上的HDMI接口!详解华硕NAS上HDMI接口的妙用之前我在本站分享我使用的华硕(ASUS)AS6704T...

Java通过Kafka Streams库来实现数据流处理

#暑期创作大赛#...

From abandoned mines to limpid streams waters: how banks profit from EOD

ByZENGYanglinInthecurrentpursuitofthe“dualcarbon”target(carbonpeakingandcarbonneutra...

SPSS与Streams的集成实现实时预测

SPSSModeler是一个数据挖掘工作台,提供了一个可了解数据并生成预测模型的最先进的环境。Streams提供了一个可伸缩的高性能环境,对不断变化的数据进行实时分析,这些数据中包括传统结构的数据...

Kafka Streams, 我还会再使用它吗?

DeeptiMittal4分钟阅读...

大数据Hadoop之——Kafka Streams原理介绍与简单应用示例

一、KafkaStreams概述官网文档:https://kafka.apache.org/32/documentation/streams/...

Android上的TCP今天开始向用户推出,并将在下个月向所有用户提供

据extends网3月15日报道,Firefox今天宣布,其保护用户免受跟踪器攻击的全面cookie保护(TCP)功能现已在Android上可用。该功能默认启动模式,这样,跟踪器将无法收集有关用户的浏...

Linux curl命令(linux curl命令安装)

Linuxcurl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、H...

go语言http服务入门详解(go语言http服务器)

当你在浏览器中输入URL时,实际上是在发送一个对Web页面的请求。该请求被发送到服务器。服务器的工作是获取适当的页面并将其作为响应发送回浏览器。在Web的早期,服务器通常读取服务器硬盘上HTML文件的...

取消回复欢迎 发表评论: