ViewStub控件是一个不可见,0尺寸得惰性控件。当ViewStub控件设置可见,或者调用inflate(),并运行完毕之后,ViewStub所指定的layout资源就会被载入。这个ViewStub就会被新载入的layout文件取代。

ViewStub也会从其父控件中移除。

因此ViewStub存在view Hierarchy中的生存期为直到ViewStub运行了setVisable(int)或者inflate()方法。

在setVisable或者inflate方法运行完成。被载入的Layout文件伴随着ViewStub的属性设置一起被增加ViewStub的父控件中。

你能够定义或者重写被载入layout文件的id属性。

比如:

<ViewStub android:id="@+id/stub"android:inflatedId="@+id/subTree"android:layout="@layout/mySubTree"android:layout_width="120dip"android:layout_height="40dip" />

这个定义的ViewStub控件能够通过设定的id“stub”找到。在成功获取subTree制定的kayout之后,ViewStub就从其父控件中移除了,被载入的mySubTree,能够通过id“subTree”找到。从以上的代码属性设置来说,终于载入的Layout文件,会以宽120dp,高40dp展示。

通过下面方式,能够使ViewStub展示出其所代表的layout文件。

   ViewStub stub = (ViewStub) findViewById(R.id.stub);View inflated = stub.inflate();

当inflate()运行完毕,Viewstub就被替换掉了,inflate返回的View就是mySubTree这个布局文件的View。所以就不须要运行额外的findById了。

值得注意的是:ViewStub在Api1的时候就已经提供了,可是在api16的时候,添加了一个方法:

public void setLayoutInflater (LayoutInflater inflater)

这种方法攻克了,不能指定LayoutInflater 的问题,这涉及了Context的使用。

假设你在低于Api16的开发中,遇到找到不你载入View 的 id的情况,那多数情况是。Context出了问题。在低于api16的情况下,解决方案有两种:

(1)自己定义ViewStub

(2)在V7包中。使用ViewStubCompat类。

作者有话说:假设你须要或者Android中文API。请扫一扫以下的二维码,您的关注。就是我的动力。

Android中文API-ViewStub相关推荐

  1. Android 中文API (94) —— MediaController

    前言 本章内容是android.widget.MediaController,版本为Android 2.3 r1,翻译来自"唐明",再次感谢"唐明" !期待你一 ...

  2. Android 中文 API 文档 (45) —— AbsoluteLayout.LayoutParams

    前言 本章内容是 android.widget.AbsoluteLayout.LayoutParams,版本为Android 2.2 r1,翻译来自"绵白糖",再次感谢" ...

  3. Android 中文API (92) —— MenuInflater

    前言 本章内容是android.view.MenuInflater,版本为Android 2.3 r1,翻译来自"獨鍆躌踄",欢迎大家访问他的博客:http://www.cnblo ...

  4. Android 中文 API (90) —— WindowManager

    一.结构 public interface WindowManager extends android.view.ViewManager android.view.WindowManager 二.概述 ...

  5. Android 中文API (70) —— BluetoothDevice[蓝牙]

    前言 本章内容是 android.bluetooth.BluetoothDevice,为Android蓝牙部分的章节翻译.蓝牙设备类,代表了蓝牙通讯国足中的远端设备.版本为 Android 2.3 r ...

  6. Android中文API(127) —— MessageQueue

    结构 继承关系 public class MessageQueue extends Object java.lang.Object android.os.MessageQueue 类概述 保存消息列表 ...

  7. android 中文 API (41) —— RatingBar.OnRatingBarChangeListener

    前言 本章内容是 android.widget.RatingBar.OnRatingBarChangeListener,版本为Android 2.2 r1,翻译来自madgoat,欢迎大家访问他的博客 ...

  8. Android 中文API (91) —— GestureDetector

    前言 本章内容是android.view.GestureDetector,版本为Android 2.3 r1,翻译来自"Haiya 胡蝶",再次感谢"Haiya 胡蝶&q ...

  9. Android 中文 API (93) —— BaseExpandableListAdapter

    前言 本章内容是android.widget.BaseExpandableListAdapter,版本为Android 2.3 r1,翻译来自"天涯明月刀",欢迎大家访问他的博客: ...

  10. Android 中文 API (19) —— TwoLineListItem

    一.结构 public class TwoLineListItem extends RelativeLayout java.lang.Object android.view.View android. ...

最新文章

  1. java SSM框架
  2. java数组元素相加_数组元素相加
  3. 装X神器!NuShell
  4. linux php版本升级_玩转Linux,介绍一个强大的Linux服务器管理面板,比宝塔更强...
  5. 可视化分析js的内存分配与回收
  6. UNIX(多线程):17---异步任务提供者(Provider) 介绍
  7. 如何编写一个shell脚本
  8. 通过 Visual Studio 对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试...
  9. 将list的内容转换成固定个数的分组字符串
  10. 摆脱了Excel重复做表,换个工具轻松实现报表自动化,涨薪三倍
  11. FLV转MPG和转成其它格式的转码方法
  12. 用色环图帮你搞定配色
  13. 计算机专业英文面试,计算机专业面试英文自我介绍
  14. Python模拟微信发红包
  15. 【论文阅读笔记】Lightweight Image Super-Resolution with Enhanced CNN
  16. 大学计算机系英语自我介绍,计算机专业复试英语自我介绍范文
  17. Gis斜坡单元提取因子值
  18. 杰奇cms linux安装教程,杰奇2.4官方原版安装教程,附环境配置
  19. 基于java的城市公交查询系统
  20. 在HC免费开源物业系统中开发接口,很详细

热门文章

  1. 宏基笔记本4740 Linux,宏基4740g拆机【教程详解】
  2. epub 机器人系列 阿西莫夫_艾萨克·阿西莫夫是不是穿越来的,他怎么能那么准地预言机器人,互联网技术呢?...
  3. 解决NGINX PHP No input file specified
  4. WCF 服务端+客户端动态调用
  5. android项目 之 记事本(6)----- 加入手写
  6. C# 获取配置文件节点值
  7. mysql集群初始化配置_集群Cluster MySQL的安装配置和使用
  8. 面经——嵌入式软件工程师ARM体系与架构相关
  9. 全国计算机等级考试题库二级C操作题100套(第03套)
  10. 网络布线工程师科普铜缆光纤损耗那点事!