一、include标签:
目的是提高代码的复用性,减少代码,将布局的公共部分抽取出来供其它布局使用。
二、merge标签:
解决布局层级的优化,减少布局嵌套的层次,提高布局加载的效率。
特点:
a 根布局是merge
b 可以不设置width和height,其内部元素的排布是根据父view排布的。

-
RelativeLayout下的效果图:
RelativeLayout的情况下.gif
3.merge中的代码
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="center"
android:text="111" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="center"
android:text="222" />
</merge>
三、ViewStub标签:
ViewStub只有加载该布局的时候才占用资源,INVISIBLE状态是不会绘制出来的
ViewStub的使用:
ViewStubViewStub加载布局和include的写法类似,但是需要设置width和height
<ViewStub
android:id="@+id/viewStub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout="@layout/item_view_stub"/>
运行后,使用Android Inspector查看当前布局发现ViewStub是灰色的,也就是没有被绘制出来,如图所示:
设置其显示:
findViewById(R.id.viewStub).setVisibility(View.VISIBLE);
运行后,使用Android Inspector查看当前布局发现为内部的layout的布局
网友评论