logo头像

勤求古训,博采众方

ConstraintLayout解析

本文于 2605 天之前发表,文中内容可能已经过时。

年前有个面试,面试中问到是否熟悉ConstraintLayout(约束布局)?我答了用过,脑袋里有个印象但是实际上是模糊的,趁此机会写篇文章重新认识下ConstraintLayout。

源起

  • 聪明的小伙伴,我们先来猜测下ConstraintLayout怎么产生的?或者换种方式问,是为了解决什么问题?

在年前的面试中,我首先问了下面试官是否可以猜测下它的作用?笑 我就说了碎片化,一看脸色,我就感觉答的不对哈,然后,转念一想约束布局,重点是约束两个字,想了一会儿,是在没什么想法,当然面试官告诉作用,说是布局的时候可以拖拽,这个题就gg了。(┬_┬)

  • 过年快过完了,我也开始重新梳理。先吹一波😄,万能的度娘上搜了鸿洋大大写的一篇ConstraintLayout 完全解析 快来优化你的布局吧开始入手。回到正题,ConstraintLayout库出现被用来解决什么问题呢?这里我就不卖关子了,他主要是解决复杂UI多层嵌套的性能差,维护成本高。如果需要看详细的分析,可以看下Google中文官方推出了一篇解析ConstraintLayout的性能优势文章。

如何使用

ConstraintLayout使用方式 优点 缺点
可视化拖拽布局 对于简单布局,容易操作 学习成本低,复杂布局不适合
手写式布局 对于复杂布局,手写往往更快速并清晰 学习成本相对高,需要熟悉约束布局的属性

如何可视化拖拽布局

  • 可视化拖拽控件,进行布局

如何手写式布局

  • 可视化拖拽控件,进行布局

总结

参考