Android应用开发之(按需加载View)
来源:互联网 发布:java中createNewfile 编辑:程序博客网 时间:2024/06/05 07:32
有些情况下,您的界面中包含了一些复杂的但是不长使用的布局内容。例如 进度条、一条撤销操作的提示信息等,最明显的一个例子就是当用户第一次使用该应用程序的时候,显示一个帮助提示内容。您可以当需要显示这些内容的时候在载入这些布局内容,这样就可以减少内存使用并提高界面的渲染速度。
定义 ViewStub
ViewStub是一个轻量级的View,没有尺寸也不会绘制任何东西到屏幕上去。因此,去解析这个View是相当快的。每个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指定的布局的时候,可以通过调用函数 setVisibility(View.VISIBLE)或者通过调用函数 inflate()。
((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE); // 或者 View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();
注意:inflate()函数返回解析后的 View,所以你没有必要在调用函数 findViewById()来得到这个View。
一旦可见或者解析(visible/inflated)后, 这个 ViewStub就不在界面层级结构中了,被锁引用的布局替代了,新的ID是 ViewStub的属性 android:inflatedId中设置的值。
注意:目前 ViewStub有个缺点就是还没有支持 <merge/>标签。
- Android应用开发之(按需加载View)
- Android应用开发之(View)
- Android官方开发文档Training系列课程中文版:布局性能优化之按需加载View
- Android应用开发:View
- android应用开发之Window,View和WindowManager
- Android应用开发之自定义View触摸相关工具类全解
- Android应用开发之自定义View触摸相关工具类全解
- android应用开发之View的大小计量单位(px、dpi、dp、dip、sp)
- Android开发之自定义View(视图)
- Android开发之自定义View(视图)
- Android开发之自定义View(视图)
- Android 应用开发之Dex解析和类加载
- Android应用开发原理之从View源码挖掘View中的事件传递机制
- Android UI之View的加载机制(二)
- 【Android应用开发】Android View 组件
- android开发之自定义View
- Android开发之View系统
- Android开发之自定义View
- 零零散散学算法之详解数据压缩算法(上)
- 学习MongoDB--(10-2):分片(建立分片)
- HDU 1032 The 3n + 1 problem
- 深入C#笔记(一)---Action
- MySQL中处理Null时要注意两大陷阱
- Android应用开发之(按需加载View)
- IE、FF、Safari、OP不同浏览器兼容报告
- Cla3D骨骼动画源代码所需环境配置
- poj1062最短路
- 构建自己的debian软件包仓库
- Protel与PADS之间相关文件的转换
- 骨骼动画反向动力学(IK)的实现
- Linux设备模型
- 深入理解DefaultMessageListenerContainer