如果在程序中多次用到一部分相同的布局,那我们就需要xml布局的重复利用,首先定义一个重复利用的XML布局,然后在需要的地方通过<include>引入,如下:
layout.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/item1" 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/item1" android:layout_alignTop="@+id/item1" 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/item2" android:layout_alignTop="@+id/item1" 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>
用Android
include时需指定宽高,否则可能会出现一些意想不到的效果,比如引用了三次,而界面上只显示了一个item。