由此我们可以简单总结出,总框架权重设置为7,每行占总权重的1,但是按钮行的按钮个数、大小不一样,要使界面美观的话必须也要行内对齐,所以每行也要单独设置权重
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" #垂直分布
android:weightSum="7"> #总权重为7
<EditText #第一个输入框
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#aaaaaa"
android:layout_weight="1"/> #占总权重7的1(7.1)
<EditText #第二个文本框
android:id="@+id/output"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#cccccc"
android:layout_weight="1"/> #占总权重7的1(7.2)
<LinearLayout #第一行Button
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" #此行占总权重的1(7.3)
android:orientation="horizontal" #控件内容水平排列
android:weightSum="5"> #控件有5个button,设置行权重5
<Button #第一行第一个Button
android:id="@+id/button_clear"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(5.1)
android:text="AC"
android:textSize="25sp" />
<Button #第一行第二个Button
android:id="@+id/button_delete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(5.2)
android:text="DEL"
android:textSize="25sp" />
<Button
android:id="@+id/button_left"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="("
android:textSize="25sp" />
<Button
android:id="@+id/button_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text=")"
android:textSize="25sp" />
<Button #第一行第5个Button
android:id="@+id/button_divide"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(5.5)
android:text="/"
android:textSize="25sp" />
LinearLayout>
<LinearLayout #第二行Button
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" #占总权重的1(7.4)
android:orientation="horizontal" #控件内容水平排列
android:weightSum="4"> #控件有4个button,设置行权重4
<Button
android:id="@+id/button_7"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.1)
android:text="7"
android:textSize="25sp" />
<Button
android:id="@+id/button_8"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.2)
android:text="8"
android:textSize="25sp" />
<Button
android:id="@+id/button_9"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.3)
android:text="9"
android:textSize="25sp" />
<Button
android:id="@+id/button_add"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.4)
android:text="+"
android:textSize="50sp" />
LinearLayout>
<LinearLayout #第三行Button
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" #占总权重的1(7.5)
android:orientation="horizontal"
android:weightSum="4"> #此控件包含4个Button,设置行权重4
<Button
android:id="@+id/button_4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.1)
android:text="4"
android:textSize="25sp" />
<Button
android:id="@+id/button_5"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.2)
android:text="5"
android:textSize="25sp" />
<Button
android:id="@+id/button_6"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.3)
android:text="6"
android:textSize="25sp" />
<Button
android:id="@+id/button_minus"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占父LinearLayout权重的1(4.4)
android:text="-"
android:textSize="25sp" />
LinearLayout>
<LinearLayout #第四行Button
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" #占总权重的1(7.6)
android:orientation="horizontal"
android:weightSum="4"> #此控件包含4个Button,设置行权重4
<Button
android:id="@+id/button_1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1"
android:textSize="25sp" />
<Button
android:id="@+id/button_2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="2"
android:textSize="25sp" />
<Button
android:id="@+id/button_3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="3"
android:textSize="25sp" />
<Button
android:id="@+id/button_mult"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="x"
android:textSize="25sp" />
LinearLayout>
<LinearLayout #第五行Button,特殊
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="4"> #“0”占了两个位置,其余两个按钮分别占了一个位置,设置行权重为4
<Button
android:id="@+id/button_0"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" #“0”占了两个位置,占父LinearLayout权重的2(4.2)
android:text="0"
android:textSize="25sp" />
<Button
android:id="@+id/button_point"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #“.”占了1个位置,占父LinearLayout权重的1(4.3)
android:text="."
android:textSize="25sp" />
<Button
android:id="@+id/button_equal"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" #占了1个位置,占父LinearLayout权重的1(4.4)
android:text="="
android:textSize="25sp" />
LinearLayout>
LinearLayout>