前言
在进行Android学习的过程中免不了接触xml的使用,但是在不断接触和学习中发现自己自己写的xml布局有很多问题:布局冗余、嵌套过多等
什么是布局的性能
- 响应时间:解析布局和加载布局的过程
性能优化方式
通过性能含义,我们可以推测性能优化是通过一系列操作减少用户操作的响应时间,让用户有更快更好的体验
布局优化
-
抽象布局标签
1、<include> 标签
include标签常用于将布局中的共用部分抽出来,使得多个布局都可以使用,有效解决了布局的冗余。
2、<merge> 标签
这个标签主要是用来减少嵌套,提高布局 解析时间有两种典型的用法(只能作为layout 的根节点):
第一种用法:当前布局是帧布局且只需要 设置必要属性,可用 <merge> 标签替换帧布局。(merge 标签 只能作为layout的根布局)第二种用法:在使用 <include> 标签 的时候, 可以使用<merge> 标签 作为它的根布局,这样也可以减少一层布局的嵌套。
3、<ViewStub> 标签
这个标签与include标签一样都可以引用外 部布局,不同的是这个标签默认是不会被 加载的,什么意思呢?默认不会显示,常 用与特殊时期布局,如:加载框、网络请 求失败等。如何显示ViewStub 标签 内容呢?
可应通过findViewById()方法拿到ViewS tub 标签对应的ViewStub对象,然后调 用该对象的inflate()方法,即可显示布局 在布局很复杂的情况下使用ConstraintLayout可以有效减少布局的嵌套层数。
适当使用AS提供的工具Layout Inspector工具查看控件树,观察自己的布局书写情况。