標籤:attribute 自訂 edit 知識 2.3 font 嵌套 需要 super
一、引入布局
在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"/>
Android 控制項知識點