LinearLayout在Android中被广泛使用,LinearLayout有一个比较重要的属性——android:layout_weight。按照字面理解就是该控件的权重,这个值默认是 零(0)。
举个例子:
在下图中,整个界面是一个Linearlayout,包含了5个子控件Linerarlayout,分别是空的、用户名的、密码的、确认和取消按钮的、保存用户的layout。
在这里,先给整个界面设置20个权重,再给子控件layout分别设置:10、1、2、3、1个权重,最后的效果就是上图。
Xml文件代码:
<?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:id="@+id/mailLayout" android:orientation="vertical" android:background="@drawable/login_background" android:weightSum="20" > <!-- 空白部分 --> <LinearLayout android:id="@+id/loginSpace" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="10" > </LinearLayout> <!-- 登陆用户名 --> <LinearLayout android:id="@+id/loginNameLayout" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal" > <ImageView android:id="@+id/loginTextName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/login_text_name" /> <EditText android:id="@+id/userName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="2dp" android:layout_marginLeft="10dip" android:background="@drawable/login_name_input" /> </LinearLayout> <!-- 登陆密码 --> <LinearLayout android:id="@+id/loginPasswordLayout" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal" > <ImageView android:id="@+id/loginTextPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/login_text_pwd" /> <EditText android:id="@+id/passWord" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="2dp" android:password="true" android:layout_marginLeft="11dip" android:background="@drawable/login_pwd_input" /> </LinearLayout> <!-- 确认登陆按钮和取消按钮 --> <LinearLayout android:id="@+id/loginButtonLayout" android:layout_weight="3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" > <ImageButton android:id="@+id/loginButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/login_confirm_button" android:background="@null" /> <ImageButton android:id="@+id/cancelButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="40dip" android:src="@drawable/login_text_cancel" android:background="@null" /> </LinearLayout> <!-- 保存用户名和密码 --> <LinearLayout android:id="@+id/loginSaveUserLayout" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal" > <CheckBox android:id="@+id/saveUserInfoCheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/login_checkbox" android:checked="true" /> <TextView android:id="@+id/loginTextSaveUser" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/login_saveuser" /> </LinearLayout> </LinearLayout>