解释:layout_weight 参数为整型值 ,它的值用于指定父控件空闲空间的分配比例。
下面举例说明
下图中红色部分即为空闲空间
相关代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="#ff0000" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#00ff00" android:textSize="30sp" android:text="first" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#ffff00" android:textSize="30sp" android:text="second" /> </LinearLayout> </LinearLayout>
设置两个TextView的layout_weight属性为1
如图,first和second占满了父控件控件,layout_weight都设置为1的意义为:
将空闲空间平均分为2份,first和second各占一份,并不是将整个父控件分为2份
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff0000" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#00ff00" android:text="first" android:textSize="30sp" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#ffff00" android:text="second" android:textSize="30sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:orientation="horizontal" > <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00ff00" android:text="first" android:textSize="30sp" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#ffff00" android:text="second" android:textSize="30sp" /> </LinearLayout> </LinearLayout>
最后分享一个小技巧,如果想first占父控件的三分之一,second占父控件的三分之二
将控件宽度设置为0,layout_weight设置为相应的比例即可
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:orientation="horizontal" > <TextView android:id="@+id/textView3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00ff00" android:text="first" android:textSize="30sp" /> <TextView android:id="@+id/textView4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:background="#ffff00" android:text="second" android:textSize="30sp" /> </LinearLayout>
时间: 2024-10-29 21:51:51