ViewStub的使用

作者: sydMobile | 来源:发表于2019-05-21 18:21 被阅读9次

今天写一下 ViewStub ,内容很简单!

ViewStub 是一个不可见的,没有尺寸,不会绘制任何东西的布局。主要用于实现 View 的延迟加载,可以避免浪费资源,减少布局的绘画,只有需要的时候才会加载。

在 ViewStub 加载完成后就会被移除,它所占用的空间就会被新的布局替换。还是来说一下具体的用法,比较清晰。


声明.png

用法

// 在布局文件中,你就当做普通 View 使用即可
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorAccent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/tv"
        android:textColor="@android:color/white"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="内容区域"/>

    <ViewStub
        android:id="@+id/vs"
        android:layout_width="match_parent"
        android:layout_height="300dp"
              // 当 ViewStub 加载后,就会被下面这个布局占用
        android:layout="@layout/activity_main"/>

</LinearLayout>

加载 ViewStub 的时候可以使用方法:

findViewById(R.id.vs).setVisibility(View.VISIBLE);
或者
View view = (findViewById(R.id.vs).inflate());

注意,如果你不调用上面的方法的话,ViewStub 是不会被加载的,包括 layout 属性中的布局,这也就是上面所说的减少资料,只有你需要了,调用上面的方法才会加载布局。一旦调用上面的方法后 ViewStub 就会变成 null 了。

应用场景

页面本身有一个布局,当由于某些错误,这个布局不加载的时候,这个时候你就可以让 ViewStub 加载你预留的空白布局了。如果提前写两套布局,根据状态使用 VISIBILBE 来调整的话,这种是你在进入这个页面,布局上面所有的控件都会加载,是会浪费资源的(有了这个空白布局一直就处于不显示状态的话)

更多分享,公众号

相关文章

  • Android性能优化之一

    Viewstub使用

  • 启动优化实践

    1.ViewStub的使用 官方解释:A ViewStub is an invisible, zero-sized...

  • viewstub的使用

    viewstub的使用场景 viewStub的一些特性 viewStub只能inflate一次,之后viewStu...

  • ViewStub--使用介绍

    (1)什么时候使用ViewStub?为什么使用ViewStub? 当我们需要根据某个条件控制某个View的显示或者...

  • ViewStub

    (1)什么时候使用ViewStub?为什么使用ViewStub?当我们需要根据某个条件控制某个View的显示或者隐...

  • Android优化篇 ViewStub按需加载布局

    原文链接 更多教程 你将学到 1.ViewStub标签的使用姿势2.ViewStub标签的使用例子3.ViewSt...

  • ViewStub 使用

    概述 ViewStub初始不可见且大小为0 ViewStub可用于在运行时延迟扩展布局资源,可以避免资源浪费。在U...

  • ViewStub的使用和源码分析

    ViewStub的使用 xml文件 可以看到,ViewStub必须添加layout,这个是它需要展示的东西。inf...

  • ViewStub的使用

    今天写一下 ViewStub ,内容很简单! ViewStub 是一个不可见的,没有尺寸,不会绘制任何东西的布局。...

  • ViewStub 与 setTranslationX

    开发过程中有个地方使用了ViewStub,但是发现ViewStub调用setTranslationX之后并没有任何...

网友评论

    本文标题:ViewStub的使用

    本文链接:https://www.haomeiwen.com/subject/cdcczqtx.html