当需要在运行时动态改变布局的情况下,使用viewstub来进行动态的布局架构是逻辑简单控制灵活的,并且相比于设置view.gone来说viewstub更加的轻量化,只有当调用了viewstub.inflate的时候viewstub指向的布局才会被inflate和实例化,而使用view.gone 来进行动态布局的话在inflate布局的时候就会被实例化,会占用更多的内存并且增加初始化的耗时。
viewstub的特点
- ViewStub只能被Inflate一次,inflate之后ViewStub对象就会被置为空。即某个被ViewStub指定的布局被Inflate后,就不能够再通过ViewStub来控制它了。
- ViewStub只能用来Inflate一个布局文件,而不是某个具体的View,当然也可以把View写在某个布局文件中。