zoukankan      html  css  js  c++  java
  • Android优化——UI优化(三)使用ViewStub延迟加载

    使用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了

    • 效果

    这里写图片描述

  • 相关阅读:
    洛谷 P1578 奶牛浴场 题解
    LOJ167 康托展开 题解
    三校联训 【NOIP模拟】寻找
    洛谷 P1809 过河问题 题解
    有关多边形面积的总结
    LOJ 103 字串查找 题解
    洛谷 P2384 最短路 题解
    POJ 2492 A Bug's Life 题解
    LOJ 10214 计算器 题解
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题解
  • 原文地址:https://www.cnblogs.com/ldq2016/p/5226583.html
Copyright © 2011-2022 走看看