美文网首页
关于使用ViewStub

关于使用ViewStub

作者: 牵着蜗牛散步Zz | 来源:发表于2018-05-16 11:42 被阅读0次

介绍:

ViewStub就是一个宽高都为0的一个View,它默认是不可见的。只有通过调用 setVisibility() 函数或者 Inflate() 函数才会将其要装载的目标布局给加载出来,从而达到延迟加载的效果。在ViewStub布局可显示之前,系统不会消耗资源去实例化里面的布局,可以节省系统资源消耗。

使用:

 <ViewStub  
        android:id="@+id/viewstub"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:inflatedId="@+id/inflatedview"  
        android:layout="@layout/net_error_view"/>

使用下面的两种方式来加载ViewStup并获取布局控件

private View netErrorView;  
  
ViewStub viewStub = (ViewStub) findViewById(R.id.viewstub);  
netErrorView = viewStub.inflate();    
viewStub.setVisibility(View.VISIBLE);  
netErrorView = findViewById(R.id.inflatedview);  

在使用第一种方式的时候,如果获取到viewStub对象并调用inflate来加载viewStub之后,viewStub就消失了,如果这时候还通过viewStub对象来进行操作就会报空指针的错误,所以“ViewStub viewStub = (ViewStub) findViewById(R.id.viewstub);”这句话只能执行一次。

另外说明一下在使用过程中遇到的两个错误:
1、must have a valid layoutResource
布局中layout标签用错了
layout="@layout/net_error_view" 改为android:layout="@layout/net_error_view"

2、ViewStub must have a non-null ViewGroup viewParent
这就是上面提到的问题了,ViewStub在加载了之后就变为空了。

相关文章

  • 关于使用ViewStub

    介绍: ViewStub就是一个宽高都为0的一个View,它默认是不可见的。只有通过调用 setVisibilit...

  • Android性能优化之一

    Viewstub使用

  • 启动优化实践

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

  • viewstub的使用

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

  • ViewStub--使用介绍

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

  • ViewStub 使用

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

  • ViewStub

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

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

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

  • ViewStub 与 setTranslationX

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

  • ViewStub的使用和源码分析

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

网友评论

      本文标题:关于使用ViewStub

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