ViewStub基本用法:

在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。

那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性。也就是说,会耗费内存等资源。

推荐的做法是使用android.view.ViewStub,ViewStub 是一个轻量级的View,它一个看不见的,不占布局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在Inflate布局的时候,只有 ViewStub会被初始化,然后当ViewStub被设置为可见的时候,或是调用了ViewStub.inflate()的时候,ViewStub所向 的布局就会被Inflate和实例化,然后ViewStub的布局属性都会传给它所指向的布局。这样,就可以使用ViewStub来方便的在运行时,要还 是不要显示某个布局。

ViewStub基本用法,include merge相关推荐

  1. android layout include merge,Android 布局优化之include与merge

    Android 官方提供了三个用来优化布局的标签,分别是include.merge与ViewStub,其中ViewStub是动态加载视图到内存,大家可以查阅:Android UI布局优化之ViewSt ...

  2. oracle 实例用法,Oracle merge into用法以及相关例子示例

    以下的文章主要是对Oracle merge into用法以及相关例子的介绍,首先我们以Oracle 9I中加入MERGE入手,以下就是文章的具体内容的分析,希望你浏览完之后会给你带来一些帮助在此方面. ...

  3. [转载]Android Layout标签之-viewStub,requestFocus,merge,include

    定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,其中有三个是与资源复用有关,分别是<viewStub/>, <requestFocus />, ...

  4. Android Layout标签之-viewStub,requestFocus,merge,include

    定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,其中有三个是与资源复用有关,分别是<viewStub/>, <requestFocus />, ...

  5. merge用法linux,Merge用法

    1.Merge语法: MERGE [hint] INTO [schema .] table [t_alias]USING[schema .] { table | view | subquery } [ ...

  6. 安卓中的布局优化之clude、merge、ViewStub

    1.include include标签常用于将布局中的公共部分提取出来供其他layout共用,以实现布局模块化,也是平常我们设计布局时用的最多的. 需要注意的是如果一个根布局引入多个include需要 ...

  7. c++预处理命令 #include用法

    c++预处理命令 #include用法 #include 语法: #include 语法: #include <filename>#include "filename" ...

  8. oracle中的merge into用法解析

    oracle中的merge into用法解析 merge into的形式 MERGE INTO [target-table] A USING [source-table sql] B ON([cond ...

  9. (转)#Pragma用法

    Author:Jeffrey 在制定ANSI C标准时,引入了pragma提示符,这个指示符来自Ada.#pragma用于向编译器提示一些信息,诸如把某个特定的函数扩展成内联,或者取消边界检查,它并非 ...

  10. OpenCV代码提取:merge/split函数的实现

    对OpenCV中的merge/split函数进行了实现,经测试,与OpenCV3.1结果完全一致. merge实现代码merge.hpp: // fbc_cv is free software and ...

最新文章

  1. Sobel 边缘实现
  2. 干货|深入浅出YOLOv5
  3. nginx+keepalived
  4. Linux打过cat没有编码,linux系统 终端下 cat中文乱码/vim不乱码 或者 cat不乱码/vim中文乱码...
  5. html文件如何转php文件,怎么把动态的php文件转换成静态的html文件,html文件是php文件…...
  6. Intellij Idea15开发Web网站
  7. ElasticSearch6.8.1集群搭建及Java客户端编写
  8. 手把手玩转win8开发系列课程(13)
  9. 计算机考试打字软件,书记员考试必备!打字练习软件及电脑练习打字快速提高方法?...
  10. 迪赛智慧数——柱状图(多色柱状图):母亲节大家都怎么挑选礼物
  11. Windows列出系统所有补丁(wmic)
  12. 页面静态化的优点及缺点
  13. 通俗易懂看RB-tree(二)
  14. VMware安装centos7
  15. 如何实现外网访问内网ip?公网端口映射或内网映射来解决
  16. 【7.talker.py listener.py】转载自他人作品,相关专业知识咨询相关人员!
  17. 自学考证-——基金从业资格证书(预考期:2023.5.20),欢迎考友!
  18. 用Python破解WiFi密码,太刺激了
  19. 新版白话空间统计(9):置信度的初探
  20. 【视频分享】尚硅谷Java视频教程_Spring注解驱动开发视频教程

热门文章

  1. C++ fork函数理解
  2. 最新仿金蝶电商ERP进销存系统软件源码 销售库存仓库财务管理收银系统网络版
  3. hibernate二级缓存(二)二级缓存实现原理简单剖析
  4. 卸载搜狗拼音输入法linux,Ubuntu下使用搜狗拼音输入法
  5. 车间调度问题总结笔记一
  6. 【重装Windows的十大理由】
  7. 【结课报告】游戏中的知识产权
  8. 卸载掉360之后无法删除360safe文件夹解决办法!
  9. 哈佛引用格式(Harvard referencing system)
  10. 5个不可多得的PPT小技巧,工作再忙也要学习!