1.常见的weight
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="50dp"
android:text="button1" />
<Button
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="50dp"
android:text="button2" />
</LinearLayout>
效果如下:
OK,效果正常
下面切换成:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="button1" />
<Button
android:layout_weight="2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="button2" />
</LinearLayout>
再看效果:
,跟想象的完全不一样的了,原因是跟weight的计算有关系。
计算方式如下:
控件的尺寸=设置的尺寸+剩余空间中控件的百分比;如button1=设置的match+(屏幕长度-2个match)*1/3=2/3屏幕宽度。
当设置为0dp时,尺寸=0+(屏幕宽度-0)*1/3。