一、引入布局
在xml文件中引入另一个布局
<include layout="@layout/XXX" />
个人理解就是在父布局的某个位置在嵌套一个布局。
二、自定义控件
步骤:
2.1 新建一个xml文件,做好自定义控件
例如:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button3"
android:layout_weight="1"
android:layout_gravity="center"
android:layout_margin="5dip"
android:background="#0f0f0f"
android:textColor="#fff000"
android:text="back"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textSize="24sp"
android:textColor="#fff000"
android:layout_weight="1"
android:id="@+id/text2"
android:text="小麦麦"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:textColor="#fff000"
android:layout_weight="1"
android:id="@+id/button4"
android:text="edit"/>
</LinearLayout>
2.2 新建一个Class,继承自View类或者其子类。例如:
public class TittleLayout extends LinearLayout {
public TittleLayout(Context context, AttributeSet attrs) {
super(context, attrs);
((LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.button,this);
}
}
2.3 在布局中引入控件就会调用该控件的构造函数,重写自定义控件父类的构造函数,并在构造函数中借助LayoutInflater加载布局文件的xml。
2.4 在布局文件中添加自定义控件
添加自定义控件与普通控件一样,只不过需要指明控件的完整类名。
例如:
<com.example.zds.test_menu01.TittleLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/>