Android优化——UI优化(三)使用ViewStub延迟加载
2023-09-27 14:27:21 时间
使用ViewStub
延迟加载
1.ViewStub
延迟加载
ViewStub是一个不可见的,大小为0的View,最佳用途就是实现View的延迟加载,在需要的时候再加载View,可Java中常见的性能优化方法延迟加载一样。
当调用ViewStub的setVisibility函数设置为可见或则调用inflate初始化该View的时候,ViewStub引用的资源开始初始 化,然后引用的资源替代ViewStub自己的位置填充在ViewStub的位置。因此在没有调用setVisibility(int)或则 inflate()函数之前ViewStub一种存在组件树层级结构中,但是由于ViewStub非常轻量级,这对性能影响非常小。 可以通过ViewStub的inflatedId属性来重新定义引用的layout id。 例如:
- xml
<ViewStub android:id="@+id/stub" android:layout_width="match_parent" android:layout_height="match_parent" android:inflatedId="@+id/subTree" android:layout="@layout/activity_viewstub_item"/>
- java
//获取到viewstub final ViewStub stub = (ViewStub) findViewById(R.id.stub); //测试用inflate()填充布局 Handler handler = new Handler() { @Override public void handleMessage(Message msg) { View view = stub.inflate(); } }; handler.sendEmptyMessageDelayed(1, 7000);
我这里间隔了一段时间去调用了
stub.inflate();
方法,加载布局,我们这里就不用再去findViewById去加载view了
- 效果
相关文章
- Android 系统架构图
- Android自己定义View之仪表盘
- Android ShareSDKQQ 第三方登录so easy?
- Android Fragment
- Android中的binder机制详解
- Android UI 自定义控件大全
- java Android与PHP encode的区别
- 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity
- 【Android】amr播放
- 【Scan Kit】集成扫码服务时Android Studio总是报错OOM如何解决?
- 《Java和Android开发学习指南(第2版)》—— 2.2 分隔符
- Android 获取 View 宽高的常用正确方式,避免为零
- 腾讯开源的Android UI框架——QMUI Android
- android生成验证码bitmap
- Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析
- Android 图标上面添加提醒(二)使用开源UI类库 Viewbadger
- android UI进阶之实现listview的分页加载
- 面试题:Android 为什么设计只有主线程更新UI
- android UI进阶之style和theme的使用
- android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
- android 在非UI线程更新UI仍然成功原因深入剖析
- Android UI-实现底部切换标签(fragment)
- 巧用Drawable 实现Android UI 元素间距效果
- Android经常使用UI组件 - Button
- Android手机安全性测试手段
- Android 在子线程中更新UI的几种方法
- android传感器;摇一摇抽签功能