使用 ViewStub 延迟展开视图
16lz
2021-12-04
1)定义 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"/>
2)展开视图
findViewById(R.id.stub_import).setVisibility(View.VISIBLE);
// 或者 获取视图
View importPanel = ((ViewStub)
findViewById(R.id.stub_import)).inflate();
有一点需要记住的是:当ViewStub inflate后,这个ViewStub就从View层次中移除了。因此,没有必要保留一个对ViewStub的引用(如在类的字段里)。
ViewStub是快捷编程与高效编程之间的产物。与其手动的inflate View并在运行时添加到View层次上,不如简单的使用ViewStub。它相当“廉价”且易于使用。ViewStub唯一的缺点是现在不支持<merge />标签。
用ViewStub类和在XML文件里面指定的布局资源文件关联起来,让布局资源文件在需要使用的时候再加载上去。主要作用是性能优化,什么时候用什么时候加载,不用在开始启动的时候一次加载,既可以加快程序的启动速度,又可以节省内存资源。
更多相关文章
- android:windowSoftInputMode属性使用
- Android应用开发相关下载资源
- 把TextView中的文字添加阴影效果及Style的使用
- Android(安卓)SDK更新以及ADT更新出现问题的解决办法
- Android月历控件(DatePicker)和时间控件(TimePicker)的使用
- android 控件使用集锦
- android 控件使用集锦
- 使用Vitamio打造自己的Android万能播放器(1)――准备
- Android(Lollipop/5.0) Material Design(五) 定义阴影和裁剪View