有时候你的布局可能需要较少使用的复杂视图。无论它们是项目详情,进度指示器,或者处理的信息,你能通过在它们被需要的时候加载的方式,来减少内存消耗和加快显示。

定义一个ViewStub

——————————————————————————————————————————————————————————————

viewStub是一个没有大小,并且在布局中不绘制或者不包含的轻量级视图。同样的,它便于在一个视图结构增加或删除。每个ViewStub仅仅需要包android:layout属性来指定将被包含的布局。

下面的ViewStub被用于一个透明的进度条。它仅当新的项目正在被导入应用程序的时候可见。

<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指定的布局,通过调用setVisiblity(View.VISIBLE)或者inflate()任意方法让它可见。

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

注意:inflate()方法返回完成填充的视图。所以如果你需要和这个布局交互,不需要调用findViewById()。

一旦可见/被填充,ViewStub元素不再是这个视图结构的一部分。它被被填充的布局取代,并且这个布局的根视图的ID被ViewStub的android:inflatedid属性指定。(andorid:id属性指定的ViewStub的ID仅仅到ViewStub布局可见/被填充之前有效。)

注意:ViewStub的一个缺点是现在它在布局中不支持<merge/>标识。

最新文章

  1. Java获得键盘输入的两种方法
  2. Python学习之路二
  3. 【Fine原创】常见的HTTP错误码的具体含义整理
  4. confluence5.6安装
  5. [家里蹲大学数学杂志]第013期2010年西安偏微分方程暑期班试题---NSE,非线性椭圆,平均曲率流,非线性守恒律,拟微分算子
  6. BZOJ1022 [SHOI2008]小约翰的游戏John
  7. 再来一个学历重要性讨论——QQ技术群聊
  8. 使用Qt报错error while building deploying project
  9. Eclipse安装教程 ——史上最详细安装Java &amp;Python教程说明
  10. win7系统查看硬盘序列号步骤
  11. CF1060E Sergey and Subway 思维
  12. 去除SVN图标并解除svn控制 (转)
  13. 使用httpclient对zip格式的响应数据解压
  14. 从oracle往greenplum迁移,查询性能不满足要求的定位以及调优过程
  15. Weblogic-unable to get file lock, will retry …问题解决
  16. Aizu:0009- Prime Number
  17. 程序员必看:如何降低APP软件开发的成本?
  18. Linux电源管理(1)-整体架构【转】
  19. 【CF712D】Memory and Scores(概率,DP,前缀和)
  20. lhgdialog.js弹出框

热门文章

  1. SICP 练习 (2.9)解决摘要:宽度和区间运算的关系间隔
  2. HTML系列(五):超链接
  3. 重构HTML改善web应用设计
  4. 最小生成树Jungle Roads
  5. Android 内部存储安装apk文件实现
  6. HTTP 错误 401.3 - Unauthorized由于 Web 服务器上此资源的访问控制列表(ACL)解决办法
  7. 深入理解urllib、urllib2及requests
  8. 四轴飞行器1.2.3 STM32F407时钟配置和升级标准库文件
  9. nyoj 528 找球号(三)(哈希)
  10. Android 5.x新特性之elevation(阴影),tinting(着色)以及clipping(剪裁)