原文地址:http://android.xsoftlab.net/training/improving-layouts/loading-ondemand.html

有时应用程序中会有一些很少用到的复杂布局。在需要它们的时候再加载可以降低内存的消耗,同时也可以加快界面的渲染速度。

定义ViewStub

ViewStub是一个轻量级的View,它没有高宽,也不会绘制任何东西。所以它的加载与卸载的成本很低。每个ViewStub都可以使用android:layout属性指定要加载的布局。

下面这个ViewStub用于一个半透明的ProgressBar的加载。它只有在新工作开始时才会显示。

<ViewStub
    android:id="@+id/stub_import"android:inflatedId="@+id/panel_import"android:layout="@layout/progress_overlay"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_gravity="bottom" />

加载ViewStub

当需要加载由ViewStub所指定的布局时,可以使用setVisibility(View.VISIBLE)方法或者inflate()方法,两者效果相同。

((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
// or
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();

Note: inflate()方法会在加载完毕的时候返回一个View。所以不需要使用findViewById()来查找这个布局的Root View。

一旦ViewStub所托管的View被加载,那么ViewStub将不再是View层级的一部分。它会被所加载的布局替换,并且会将该布局的ID更改为ViewStub的android:inflatedId属性所指定的ID。

Note: ViewStub的缺点是:它当前并不支持要加载布局的root View为< merge/>标签。

Android官方开发文档Training系列课程中文版:布局性能优化之按需加载View相关推荐

  1. Android官方开发文档Training系列课程中文版:性能优化建议

    原文地址:http://android.xsoftlab.net/training/articles/perf-tips.html 本篇文章主要介绍那些可以提升整体性能的微小优化点.它与那些能突然改观 ...

  2. Android官方开发文档Training系列课程中文版:目录

    原文地址 : http://android.xsoftlab.net/training/index.html 引言 在翻译了一篇安卓的官方文档之后,我觉得应该做一件事情,就是把安卓的整篇训练课程全部翻 ...

  3. Android官方开发文档Training系列课程中文版:创建自定义View之View的创建

    原文地址:http://android.xsoftlab.net/training/custom-views/index.html 引言 Android框架含有大量的View类,这些类用来显示各式各样 ...

  4. Android官方开发文档Training系列课程中文版:OpenGL绘图之图形绘制

    原文地址:http://android.xsoftlab.net/training/graphics/opengl/draw.html 如果你还不清楚如何定义图形及坐标系统,请移步:Android官方 ...

  5. Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之Fragment创建

    原文地址:http://android.xsoftlab.net/training/basics/fragments/index.html 导言 为了在Android中创建动态的多面板用户界面,你需要 ...

  6. Android官方开发文档Training系列课程中文版:打印内容之HTML文档打印

    原文地址:http://android.xsoftlab.net/training/printing/html-docs.html 在Android中打印内容要比打印照片要复杂一些,它要求将文本与图像 ...

  7. Android官方开发文档Training系列课程中文版:布局性能优化之布局层级优化

    原文地址:http://android.xsoftlab.net/training/improving-layouts/index.html 引言 布局是直接影响用户体验的关键部分.如果实现的不好,那 ...

  8. Android官方开发文档Training系列课程中文版:管理系统UI之隐藏状态条

    原文地址:http://android.xsoftlab.net/training/system-ui/status.html 这节课将会介绍如何隐藏不同的版本的状态条.隐藏状态条可以使内容展示区域更 ...

  9. Android官方开发文档Training系列课程中文版:创建自定义View之View的优化

    原文地址:http://android.xsoftlab.net/training/custom-views/optimizing-view.html 现在已经完成了一个拥有良好设计的View,它即可 ...

  10. Android官方开发文档Training系列课程中文版:多样屏幕之实现自适应UI

    原文地址:http://android.xsoftlab.net/training/multiscreen/adaptui.html 基于程序当前所显示的布局来说,UI流程可能会有所不同.比如说,如果 ...

最新文章

  1. 动态滤波器卷积新高度!DDF resnet50精度提高1.9
  2. Android属性之build.prop生成过程分析
  3. 管理本地多个SSH Key
  4. asp.net利用RAR实现文件压缩解压缩(转)
  5. ECCV2020 Oral | 图像修复之再思考
  6. 《学习OpenCV3》第4章 图像和大型数组类型(持续更新)
  7. 简易计算器里的小数点在程序中怎么表示_收藏!计算器使用攻略
  8. php和app关系,php在app开发中的应用
  9. 算法:链表最快的排序方法,分而治之再合并排序
  10. AndroidSDK下载及安装
  11. cnpack导致view快捷键失灵。
  12. 神经网络计算棒怎么用,英特尔神经网络计算棒
  13. 2015年计算机二级office,2015年计算机二级MSoffice考试资料汇总.doc
  14. .Net Core微服务化ABP之六——处理Authentication
  15. 室性心律失常影响因素分析
  16. Verify the connector‘s configuration, identify and stop any process that‘s listening on port 8911
  17. 学会给你的笔记本电池换“芯”
  18. xshell连接成功
  19. 企业应用快速开发平台
  20. 计算机名ip自动配置文件,机房管理中自动配置IP地址和计算机名实现.pdf

热门文章

  1. 用gdb搞清楚一道union相关的面试题
  2. 复习Collection_迭代器使用细节_泛型_综合案例
  3. The size of tensor a (4) must match the size of tensor b (3) at non-singletonThe size of
  4. 图像目标分割_1 概述
  5. ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘
  6. Chapter7-8_Deep Learning for Constituency Parsing
  7. 天池 在线编程 双向取数(博弈DP)
  8. LeetCode 990. 等式方程的可满足性(并查集)
  9. LeetCode 441. 排列硬币(数学解方程)
  10. LeetCode 第 23 场双周赛(970/2044,前47.5%)