Android性能优化-布局优化(一)

 时间:2026-02-16 00:59:16

1、include布局优化。

当页面较多,内容重复也比较多,比如app每个页面都有标题栏,就会存在多个页面的标题栏长的都一样,那么就可以将这些页面相同的部分抽取出一个公共的布局。用include标签来引入就可以了。由此可见采用include标签的好处就是简化代码,避免代码冗余。

Android性能优化-布局优化(一)

2、merge标签的使用

在做页面时,经常会用到布局嵌套的情况,其中有一种情况是子布局的根视图与它的父视图是同一类型;如下图所示。但需要注意merge不是随意使用的,它也是有一定规则的:1、只能在布局的根节点使用光驾;2、该子类布局的根节点需与其父类相同时才可以使用。具体可以查看源码,也可给我留言交流。

Android性能优化-布局优化(一)

3、ViewStub视图的使用

ViewStub是一个不可见的和蚊拒处能在运行期间延迟加载目标视图的、宽高都是0的

View。当需要其布局展示时,可调用它的inflate()方法设置它可见,也可以执行它的setVisibility(View.VISIBLE)方法设置它可见。它的好处就是,设置ViewStub视图之前,它是不占用布局空间和系统资源的。它只是一个为目标视图临时占了一个位置。

Android性能优化-布局优化(一)

Android性能优化-布局优化(一)

4、减少视图树层级结构

每一个视图显示的时候都要经历测量、布局、绘制的过程。查看源码可知,如果我们的布局嵌套的视图层次太多,就会造成额外的测量、布局等,比较消耗系统资源,使得UI变得卡顿,影响用户体验。其实merge也是减少视图层级的一种方式。如下图,同样的视图,不同的布局,使用RelativeLayout更优一点。

Android性能优化-布局优化(一)

Android性能优化-布局优化(一)

5、view的视图因此与显示(gone, visible, invisible)

gone, invisible两种同样时有隐藏视图的功能。gone,不占用空间,视图会重新测量绘制;而invisible视图不会重新绘制,视图虽然因此,侮互但仍然占用空间位置。所以根据不同情况进行选择,但建议遵循一点,能使用invisible就不使用gone。

Android性能优化-布局优化(一)

6、这里做一下简单的总结:

1、相同层级的布局,可以Linearlayout,但尽量不要使用weight,因为使用weight会重新测量两次。

2、不同层级时,如果Linearlayout使用嵌套过多,这是建议使用RelativeLayout减少布局嵌套。

Android性能优化-布局优化(一)

  • 手机端模拟双击事件 任何基于js都可以
  • eclipse.ini内存设置
  • 如何下载sqlitestudio
  • jquery如何选取除某个元素外的所有元素?
  • bootstrap datetimepicker日期控件使用方法
  • 热门搜索
    绿色环保手抄报图片 安全教育日手抄报 创城手抄报 尊老敬老的手抄报 中秋节手抄报内容文字 元旦手抄报图片大全 元旦节的手抄报 新学期新起点手抄报 过年的手抄报 关于国庆的手抄报