找了很久,终于找到了。
- <?xml version="1.0" encoding="UTF-8" ?>
- <merge xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:okCancelBar="http://schemas.android.com/apk/res/com.example.android.merge">
- <ImageView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:scaleType="center"
- android:src="@drawable/golden_gate"
- />
- <com.example.android.merge.OkCancelBar
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:paddingTop="8dip"
- android:gravity="center_horizontal"
- android:background="#AA000000"
- okCancelBar:okLabel="Save"
- okCancelBar:cancelLabel="Don't save"
- />
- </merge>
com.example.android.merge.OkCancelBar是一个自定义的GROUP
- public class OkCancelBar extends LinearLayout{
- public OkCancelBar(Context context,AttributeSet attrs){
- super(context, attrs);
- setOrientation(HORIZONTAL);
- setGravity(Gravity.CENTER);
- setWeightSum(1.0f);
- LayoutInflater.from(context).inflate(R.layout.okcancelbar,this,true);
- TypedArray array= context.obtainStyledAttributes(attrs, R.styleable.OkCancelBar,0,0);
- String text= array.getString(R.styleable.OkCancelBar_okLabel);
- if(text==null) text="Ok";
- ((Button) findViewById(R.id.okcancelbar_ok)).setText(text);
- text= array.getString(R.styleable.OkCancelBar_cancelLabel);
- if(text==null) text="Cancel";
- ((Button) findViewById(R.id.okcancelbar_cancel)).setText(text);
- array.recycle();
- }
- }
LayoutInflater.from(context).inflate(R.layout.okcancelbar,this,true);
直接从XML中得到一个VIEW加入到当前GROUP中
okcancelbar.xml:
- <merge xmlns:android="http://schemas.android.com/apk/res/android">
- <include layout="@layout/okcancelbar_button" android:id="@+id/okcancelbar_ok"/>
- <include layout="@layout/okcancelbar_button" android:id="@+id/okcancelbar_cancel"/>
- </merge>