提高显示布局文件的性能 3 - 按需载入视图(ViewStub的使用方法)

简介:

Loading Views On Demand [按需载入视图]

某些时候,我们需要一些很复杂的视图却仅仅很少用到。如果我们在它仅仅需要的时候再载入,这样可以减少内存的使用并且给用户带来流畅的体验。

Define a ViewStub [定义ViewStub]

ViewStub是一个轻量级的view,没有占有空间,没有花费draw的资源,也没有参与在任何一个layout里面。
不仅创建它仅需要很少的系统资源,而且存留在View的层级也是个比较不花费资源的动作。
每一个ViewStub简单的包含一个android:layout的属性来指定待创建的布局文件。

下面是一个包含Progress bar的ViewStub例子,这对于overlay来说是透明的,progress bar仅仅会在需要导入的时候才会可见。
  1. <ViewStub  
  2.     android:id="@+id/stub_import"  
  3.     android:inflatedId="@+id/panel_import"  
  4.     android:layout="@layout/progress_overlay"  
  5.     android:layout_width="fill_parent"  
  6.     android:layout_height="wrap_content"  
  7.     android:layout_gravity="bottom" />  

Load the ViewStub Layout [载入ViewStub的布局]

当你想要载入在ViewStub中定义的布局的时候,可以calling setVisibility(View.VISIBLE) or call inflate().

((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);

// or
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();
一旦被设置可见或者被创建,这个ViewStub组件则从View层级中消失,它被创建出来的布局所替代,而且这个布局的ID就是ViewStub里面用android:inflatedId属性所定义的。
(用来定义这个ViewStub的ID的属性andoid:id直到被可见才是有效的)。

Note:ViewStub的一个缺陷是目前并不支持创建包含有<merge>标签的布局文件。

相关文章
Altium Designer如何设定/修改PCB板边框外形
Altium Designer如何设定/修改PCB板边框外形
2585 0
|
10月前
|
存储 弹性计算 运维
使用阿里云云服务诊断工具的体验
总的来说,阿里云的云服务诊断工具给了我很大的帮助。它不仅提高了我的工作效率,还让我能够更有信心地管理云资源。我会继续使用这个工具,并推荐给我的同行们。希望阿里云能够继续优化这个工具,让它变得更加强大。
165 9
|
12月前
|
安全 网络安全
构建安全文化的重要性及实践
【10月更文挑战第12天】 在当前快速变化的工作环境中,构建一个强大的安全文化是确保组织长期成功的关键。安全文化是指在组织内部,所有级别的员工都重视并积极参与维护安全的行为和态度。本文将探讨安全文化的重要性,以及如何通过具体实践来加强这一文化,包括但不限于定期的安全培训、建立开放的沟通渠道、实施定期的风险评估以及鼓励员工提出改进建议等策略。
|
12月前
|
数据采集 DataWorks 数据管理
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第10天】随着大数据技术的发展,企业对数据处理的需求日益增长。阿里云推出的DataWorks是一款强大的数据集成和管理平台,提供从数据采集、清洗、加工到应用的一站式解决方案。本文通过电商平台案例,详细介绍了DataWorks的核心功能和优势,展示了如何高效处理大规模数据,帮助企业挖掘数据价值。
347 1
|
11月前
|
人工智能 搜索推荐 区块链
元宇宙:虚拟现实的新纪元
在科技飞速发展的今天,元宇宙(Metaverse)正从科幻走向现实,成为连接物理与数字世界的桥梁。本文将探讨元宇宙的定义、关键技术、现有形态及未来展望,带您领略这一虚拟空间的无限可能。元宇宙利用VR、AR、区块链等技术,构建了一个沉浸式的虚拟世界,用户可通过数字化身自由探索、社交、娱乐、学习和工作。尽管仍处初级阶段,但虚拟会议、数字艺术、游戏娱乐等领域已初现端倪。未来,元宇宙有望成为第二人生、数字商务、创新教育和远程协作的重要平台,同时也面临数据安全、隐私保护等挑战。
|
Windows
最新永久汉化免费版PS2023Photoshop2023版本ACR15
Photoshop 2023 v24.0.1.547是由Adobe公司最新推出的高效、专业、实用的图像处理软件,同时该软件主要是以其强悍的编辑和调整、绘图等功能得到广泛的应用,其中还有各种图片的调整和图画绘制以及图像的修复、调色等一系列的工具都是数不胜数,使用范围也是非常的广,我们从照片修饰到海报、包装、横幅的制作,再到照片的处理,只要您需要我们就可以做到,丰富的预设让用户的工作可以更加的轻松。
1520 0
|
运维 Kubernetes 监控
阿里云 ACK 云上大规模 Kubernetes 集群高可靠性保障实战
本文基于 ACK 稳定性保障实践经验,帮助用户全面理解 ACK 稳定性理论和优化策略,并了解如何使用相应的工具和服务进行稳定性保障。
185033 23
|
存储 关系型数据库 MySQL
Mysql数据库设计规范和技巧
Mysql数据库设计规范和技巧
|
前端开发
CSS实现鼠标悬停图片向上浮动,放大,翻转
CSS实现鼠标悬停图片向上浮动,放大,翻转
467 0
|
云安全 监控 安全
重磅|瑞数信息入选Gartner中国API领域代表厂商!
瑞数API安全管控平台被收录为中国API安全领域推荐产品
356 0
重磅|瑞数信息入选Gartner中国API领域代表厂商!