Android——ViewGroup的一個用法執行個體(轉載),androidviewgroup
找了很久,終於找到了。
<?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>
android: 自訂一個ViewGroup實現多個view之間的水平拖動切換, 但是如果view裡面放了一個ListView的話
你在listview的ontouch裡面做一下識別,如果是水平手勢的話,就返回false,上下手勢則進行listview本身的touch
向大家教有關ViewGroup的使用方法
ViewGroup是抽象類別,不能直接執行個體化。寫一個類繼承它就可以了~