1、LinearLayout可以為其包含控制項指定填充權值layout_weight。 這樣就允許其包含的控制項可以填充螢幕上的剩餘空間。這也避免了所有控制項擠成一堆的情況,而是允許他們放大填充所有空白。剩餘的空間會按這些控制項指定的權值比例分配螢幕。
2、預設情況下,weight的值是0,表示按照控制項的實際大小顯示;如果weight設定高於零。
3、剩餘空間會按照該控制項的weight值占所有控制項weight的比例分配給該控制項。 比如有兩個控制項,一個weight為1,另外一個是2. 則剩餘空間會把1/(1+2)的部分給控制項一,另外2/(1+2)的分配給控制項二。也就是權值越大,重要度越大。
4、如果LinearLayout包含子LinearLayout,子LinearLayout之間的權值越大的,重要度則越小。如果有LinearLayout A包含LinearLayout C,D,C的權值為2,D的權值為1,則螢幕的2/3空間分給權值為1的D,1/3分給權值為2的C。在LinearLayout嵌套的情況下,子LinearLayout必須要設定權值,否則預設的情況是未設定權值的子LinearLayout佔據整個螢幕。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_weight="2"> <SurfaceView android:id="@+id/surfaceView" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="1" android:layout_gravity="center"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/btnTakePicture" android:gravity="center" android:textSize="20px" android:text="拍照"/> </LinearLayout></LinearLayout>