博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发 - 掌握ConstraintLayout(一)传统布局的问题
阅读量:6717 次
发布时间:2019-06-25

本文共 1280 字,大约阅读时间需要 4 分钟。

在传统的Android开发中,页面布局占用了我们很多的开发时间,而且面对复杂页面的时候,传统的一些布局会显得非常复杂,每种布局都有特定的应用场景,我们通常需要各种布局结合起来使用来实现复杂的页面。随着ConstraintLayout的推出,这种现象有了很大的改善,而且它可以实现很多传统布局难以实现的功能。

本系列我们就一起来学习ConstraintLayout的使用,来大幅提高我们的生产力。

传统布局

在ConstraintLayout退出之前,我们经常使用FrameLayout, LinearLayout, RelativeLayout, *Layout等来布局页面。这些布局当然有其方便的地方,但是其方便地同时也限制了我们的使用场景,在写一些复杂页面的时候就显得力不从心,我们先做一下简单地回顾:

  • FrameLayout:帧布局。最常用并且简单的布局,通常用于错误页面的显示,蒙层的显示等。
  • LinearLayout:线性布局。当我们绘制需要顺序排列的内容时,我们使用使用此布局。
  • RelativeLayout:相对布局。相当于ConstraintLayout的低级版本。顾名思义,可以各个View之间相对地指定位置进行布局。
  • ...

存在的问题

以上布局并不是完美的,比如我们要布局这个页面:

-w540

我们如果使用传统的布局,可能会导致布局的层级多层嵌套:

...
...
  • 布局复杂

使用传统的布局虽然可以实现我们的需求,但是在代码实现中有非常多的嵌套,而且要结合许多布局的特性来实现,这样复杂的布局让我们难以维护。

  • 效率底下

当布局层级越深的时候,系统的绘制效率越低,当子View.invalidate()的时候,也会导致其父View进行重新绘制。

又比如这些布局中相对灵活的RelativeLayout,它会被测量至少两次,已确定最终渲染时的位置,也同样会影响效率。

  • 难以创建复杂动画

Android在属性动画(ObjectAnimator)推出之前,执行动画的原理其实只是在绘制的时候执行,并不是真正的改变了布局,在属性推出之后,虽然确实可以改变其真实的布局属性,但是由于布局特性的约束以及各个View之间的约束,创建复杂的动画也并非易事。

ConstraintLayout登场!

下面我们进入本系列的主角:ConstraintLayout!

使用ConstraintLayout可以解决以上传统布局存在的种种问题,而且Android Studio也提供了强大而且简单易用的编辑器,使用它可以让我们的开发效率大大增加。

下一篇我们将介绍它:

如有更多疑问,请参考我的其它Android相关博客:

转载地址:http://ssumo.baihongyu.com/

你可能感兴趣的文章
SQL教学思路《图书管理系统》习题二:插入数据
查看>>
SAP R3 采购申请相关简单操作 :附Oracle后台数据库对应表明细。
查看>>
UGUI表情系统解决方案
查看>>
Provisioning Services 7.8 入门系列教程之四 目标设备安装
查看>>
求助:部分电脑无法使用VBScript.RegExp提供的功能
查看>>
pxe网络安装centos6
查看>>
microsoft office 2007 完全 卸载 工具 来自微软官方
查看>>
使用Extended Events收集错误信息
查看>>
前端开发中的MCRV模式
查看>>
Lync Server 2013音视频网络流量带宽优化
查看>>
PfSense基于BSD的软件防火墙的安装、配置与应用
查看>>
“对于目标文件系统,目标文件过大,无法复制
查看>>
Castle IOC容器构建配置详解(二)
查看>>
IT图书创作中要注意的多与少
查看>>
Hyper-V 3.0功能部署PART 2:防火墙和证书
查看>>
SQL2K数据库开发二十三之索引操作重建索引
查看>>
用IE删除软件删除IE出现问题解决方法
查看>>
从“窃听门”事件解读手机Rootkit攻击
查看>>
[Android学习笔记三] Support v7提供交错式网格布局开发示例
查看>>
QoS令牌桶工作原理
查看>>