如果在程序中多次用到一部分相同的布局,可以先将这部分布局定义为一个单独的XML,然后在需要的地方通过<include>引入,如下:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<include android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cell1"
layout="@layout/item"
android:layout_marginTop="10dp"
android:layout_marginLeft="45dp"/>
<include android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cell2"
layout="@layout/item"
android:layout_toRightOf="@+id/cell1"
android:layout_alignTop="@+id/cell1"
android:layout_marginLeft="20dp"/>
<include android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cell3"
layout="@layout/item"
android:layout_toRightOf="@+id/cell2"
android:layout_alignTop="@+id/cell1"
android:layout_marginLeft="20dp"/>
</RelativeLayout>
item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible">
<ImageView android:background="#000000"
android:id="@+id/iv_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="false" />
<TextView android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#a17006"
android:textStyle="bold"
android:textSize="22dp"
android:layout_alignLeft="@+id/iv_img"
android:layout_below="@+id/iv_img" />
</RelativeLayout>
使用include时需要注意的是要指定宽高属性,要不可能会出现一些意想不到的效果,比如引用了三次,而界面上只显示了一个item