最近优化项目内存的时候了解到ViewStub,include和ViewStub都是引用布局的标签,但是它们是有区别的;
include和ViewStub的区别
1.include是可以在布局中引入另一个布局,但是它是固定加载的,使用起来不方便;ViewStub和include的功能类似,也是引用另一个布局,但是它是动态加载布局,通俗的话来讲,include是在加载布局的时候就会加载引用布局,ViewStub加载布局的时候不会加载引用布局,只有在调用ViewStub.inflate或者ViewStub.setVisibility(View.VISIBLE)的时候才会加载引用的布局。
2.ViewStub只会被inflate一次,之后ViewStub的对象会被置空,换句话说,就是引用布局被置空,即某个布局被ViewStub指定的布局被inflate之后,不能通过ViewStub去控制它了;
3.使用ViewStub的时候,某些布局属性要加在ViewStub上而不是实际布局才会起作用,比如margin,width,height等属性要加在ViewStub上才能起作用,ViewStub属性会在inflate之后传递到引用布局