1.include:
布局复用,使用layout=设置引用的布局。需要注意的是只支持android:id 和android:layout_xxx,而且要设置android:layout_xxx必须设置宽高,否则无效。
2.merge:
用于减少冗余的布局嵌套,相当于他包裹的内容直接放到他的父组件下(只能用作布局文件的根标签)。常用于include引用的布局文件,比如说原来有一个垂直线性布局,其中有一个include,引用的布局又是一个垂直线性布局。这时就没必要在引用的布局使用线性布局作为根布局,用merge就可以了。
3.ViewStub:
应用场景是刚开始不需要加载的布局内容(如网络断开界面),意义就是减少刚开始的加载时间。
这个组件刚开始不占空间,通过android:layout设置要加载的内容。再设置可见性或调用inflate后要加载的内容替换掉他显示,相应的空间弹开(像是gone到visible)。
一般要设置android:id和android:inlfateId,第一个就是他的ID,第二个是要加载的内容的ID。
使用:
vs= (ViewStub) findViewById(R.id.vs);
vs.setVisibility(View.VISIBLE);
//vs.inflate();第二种显示方式
View view1=findViewById(R.id.show);
TextView tv=(TextView) view1.findViewById(R.id.tv);
这里的show就是InflateId
待通知viewstub加载后再获取加载的view,并通过这个view的findViewById来获取其子组件。