可以为ViewStub指定一个布局,在Inflate布局的时候,只有ViewStub会被初始化,然后当ViewStub被设置为可见的时候,或是调用了ViewStub.inflate()的时候,ViewStub...但ViewStub也不是万能的,下面总结下ViewStub能做的事儿和什么时候该用ViewStub,什么时候该用可见性的控制。 ...首先来说说ViewStub的一些特点: 1. ViewStub只能Inflate一次,之后ViewStub对象会被置为空。...按句话说,某个被ViewStub指定的布局被Inflate后,就不会够再通过ViewStub来控制它了。 2....因为ViewStub只能Inflate一次,之后会被置空,所以无法指望后面接着使用ViewStub来控制布局。所以当需要在运行时不止一次的显示和隐藏某个布局,那么ViewStub是做不到的。
今天写一下 ViewStub ,内容很简单! ViewStub 是一个不可见的,没有尺寸,不会绘制任何东西的布局。...在 ViewStub 加载完成后就会被移除,它所占用的空间就会被新的布局替换。还是来说一下具体的用法,比较清晰。 用法 // 在布局文件中,你就当做普通 View 使用即可 <?...android:layout_width="match_parent" android:layout_height="300dp" // 当 ViewStub...加载后,就会被下面这个布局占用 android:layout="@layout/activity_main"/> 加载 ViewStub 的时候可以使用方法...一旦调用上面的方法后 ViewStub 就会变成 null 了。 应用场景 页面本身有一个布局,当由于某些错误,这个布局不加载的时候,这个时候你就可以让 ViewStub 加载你预留的空白布局了。
目录介绍 01.什么是ViewStub 02.ViewStub构造方法 03.inflate()方法解析 04.WeakReference使用 05.ViewStub为何无大小 06.ViewStub为何不绘制...07.可以多次inflate()吗 08.ViewStub不支持merge 09.ViewStub使用场景 10.ViewStub总结分析 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点...当 ViewStub 变得可见或 inflate() 的时候,布局就会被加载(替换 ViewStub)。...即某个被ViewStub指定的布局被Inflate后,就不能够再通过ViewStub来控制它了。...08.ViewStub不支持merge 不能引入包含merge标签的布局到ViewStub中。
将根view添加到父控件中 2.ViewStub 其实ViewStub就是一个宽高都为0的一个View,它默认是不可见的,只有通过调用setVisibility函数或者Inflate函数才会将其要装载的目标布局给加载出来...,示例如下 : ViewStub android:id="@+id/stub_import" android:inflatedId="@+id/stub_comm_lv"...setContentView(R.layout.main); // 方式1,获取ViewStub, ViewStub listStub =...); // 获取到评论ListView,注意这里是通过ViewStub的inflatedId来获取 ListView commLv = findViewById...findViewById的问题,注意ViewStub中是否设置了inflatedId,如果设置了则需要通过inflatedId来查找目标布局的根元素。
ViewStub是什么 ViewStub是View的子类 它不可见,大小为0 用来延迟加载布局资源 注,关于Stub的解释 A stub is a small program routine that...ViewStub使用场景 ?...如果默认加载子话题的View,则会造成内存的占用和CPU的消耗 所以,这时候就ViewStub就派上用处了.使用ViewStub可以延迟加载布局资源....ViewStub 怎么用 在布局文件中使用ViewStub标签 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26...意思是ViewStub不支持标签.
的view,不甚理解, 我一直认为分析一个原生控件的最好办法就是查看源码以及demo演示,所以先看下ViewStub源码中的说明 根据源码可以获得以下信息 1,ViewStub继承自View 2,ViewStub...()方法时,ViewStub得到填充,此时viewstub所引用的layout布局会代替掉viewstub控件显示出来,也就是说在调用setVisible(int)或者inflate()方法之前,UI中只有一个大小为...0的viewstub。...在代码中进行引用 在代码中通过id获取到对ViewStub的引用,然后调用inflate方法,调用该方法后mySubTree布局会代替ViewStub。...ViewStub会被从它的parent中移除.通过inflateID:subTree可以在代码中引用到mySubTree ViewStub stub = (ViewStub) findViewById
3.ViewStub ViewStub有点类似于懒加载,就是什么时候需要加载相关视图了,在做显示。...调用完成ViewStub被销毁 // 如果再次点击按钮,会抛出异常"ViewStub must have a non-null ViewGroup viewParent"...ViewStub viewStub = findViewById(R.id.vs_main); if(viewStub !...= null){ viewStub.inflate(); //这里注意ViewStub只是一个容器,所以在其显示后,其中的...image.png ViewStub内容已加载的布局层级: ? image.png ViewStub标签使用注意点: 1,ViewStub标签不支持merge标签。
image.png 什么是ViewStub 1. ViewStub 是一个看不见的,没有大小,不占布局位置的 View,可以用来懒加载布局。 2....当 ViewStub 变得可见或 inflate() 的时候,布局就会被加载(替换 ViewStub)。...ViewStub只能被Inflate一次,inflate之后ViewStub对象就会被置为空。即某个被ViewStub指定的布局被Inflate后,就不能够再通过ViewStub来控制它了。 2....可以多次inflate()吗 ViewStub对象只可以Inflate一次,之后ViewStub对象会被置为空。...ViewStub不支持merge 不能引入包含merge标签的布局到ViewStub中。
C语言貌似过时的几种表现 1. 在2016年编程语言排行榜上,C语言排名进一步下降,王小二过年,一年不如一年。java现在目前坐稳了第一位,php,python等语言上升势头,也非常迅猛。...从这个层面讲C语言是永远不会过时的,顶多算是应用范围变窄,但其作用依然强大。 ? 3. C语言的职位比例相对应用级语言是低了点,但是整个软件行业在发展,绝对的C语言编程职位并没有减少。
由于这个问题的存在,FTP协议的确不够先进,有些过时。 FTP可以说是最早而且广泛流传的文件通信协议,尽管不够先进,但是他具备巨大的历史惯性和群众基础。
三、ViewStub的用法以及注意点 ViewStub也可以用来加载布局文件,但与include标签完全不同。...ViewStub是一个不可见的View类,用于在运行时按需懒加载资源,只有在代码中调用了viewStub.inflate()或者viewStub.setVisible(View.visible)方法时才内容才变得可见...这里需要注意的一点是,当ViewStub被inflate到parent时,ViewStub就被remove掉了,即当前view hierarchy中不再存在ViewStub,而是使用对应的layout视图代替...(R.id.viewstub)); if(stub!...ViewStub标签使用注意点: 1,ViewStub标签不支持merge标签。因此这有可能导致加载出来的布局存在着多余的嵌套结构,具体如何去取舍就要根据各自的实际情况来决定了。
setBackgroundDrawable()在API 16(4.1)已经过时了 4.1之后有两种方法可以代替: a、setBackgroundResource b、setBackground 例如
ViewStub 标签最大的优点是当你需要时才会加载,使用它并不会影响UI初始化时的性能.各种不常用的布局像进度条、显示错误消息等可以使用ViewStub标签,以减少内存使用量,加快渲染速度.ViewStub..."/> ViewStub android:id="@+id/viewstub_demo_image" android:layout_width="wrap_content"...for textview ViewStub stub = (ViewStub) findViewById(R.id.viewstub_demo_text);...for imageview ViewStub stub = (ViewStub) findViewById(R.id.viewstub_demo_image);...标签使用注意 ViewStub标签不支持merge标签 ViewStub的inflate只能被调用一次,第二次调用会抛出异常,setVisibility可以被调用多次,但不建议这么做(ViewStub
那么好,首先给出结论:Spring MVC没有过时,它仍然是当前主流的Java Web开发框架。但是,在这个时间点谈论这个问题就有点意思了。...但是, 像spring mvc这样前后端耦合较大的框架是否过时了? 这个疑问就没有必要了。 Spring MVC前后端耦合不大啊。你完全可以使用@RestController。...如果没有,那就没有过时 你们最近半年访问过Spring 官网首页吗? 特别是2018的Spring One大会,大家注意到了吗?...所以,此时想一下Spring MVC是否过时是个很有意思的问题。它仍是最主流最成熟的Java服务器端MVC框架,但它并不代表Web进化的方向。 评论区有人提到Vert.x。...看完这篇文章,你觉得Spring MVC会过时吗? 欢迎在留言区留言一起讨论~
从业人员数量分析:在操作系统市场份额中Android系统市场占比为41.14%,Windows市场占比为31.36%。微软依靠“WinTel”+“软件付费”模式...
SSM框架是Spring MVC ,Spring和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为View层,Controller层,Servic...
1.1.4 Servlet 过时了吗? ...Servlet 是规范之一,只是框架在底层帮我们实现了 Servlet,直观上感觉不到 Servlet 的存在,并不是说已经过时了,Servlet 在今后的长时间内还会被广泛使用。
getDrawable(int)在API 21(5.0)已经过时了 5.0之后使用: ContextCompat.getDrawable(context, R.drawable.your_drawable
'getColor(int)' 在API 23(6.0)已经过时了 6.0之后使用: ContextCompat.getColor(context, R.color.color_name) 例如: textView.setTextColor
与include标签不同,ViewStub的android:id属性是设置ViewStub本身id的,而不是重写布局id,这一点可不要搞错了。...--ViewStub标签的使用--> <TextView android:textSize="18sp" android:text="3、ViewStub标签的使用...的填充事件: viewStub.setOnInflateListener(new ViewStub.OnInflateListener() { @Override...奇怪,我们明明写了viewStub.setVisibility(View.GONE),layout_view_stub也隐藏了,为什么ViewStub的状态还是可见呢?...这样一来,在mInflatedViewRef不为空,也就是已经填充了布局的情况下,ViewStub中的setVisibility()方法实际上是在设置内部视图的可见性,而不是ViewStub本身。