所谓的嵌套布局就是在一个文件中嵌套多个布局文件
<span style="font-size:18px;"> <LinearLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" > …… …… …… </FrameLayout > </LinearLayout></span>
接下来使用嵌套布局来实现一个简单计算器的UI效果
下面是基本构思图
使用Xml布局文件设置计算器效果
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="3" android:orientation="vertical" > <TextView android:id="@+id/text2" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_marginTop="0dp" android:layout_weight="1" android:padding="0dp" /> <TextView android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_marginTop="0dp" android:layout_weight="2" android:padding="0dp" /> </LinearLayout> <TableLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" > <TableRow android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="0.2" > <Button android:id="@+id/left_bracket_button" android:layout_height="fill_parent" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="0.25" android:background="#333333" android:text="(" android:textColor="@android:color/white" android:textSize="25sp" /> <Button android:id="@+id/right_bracket_button" android:layout_height="fill_parent" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="0.25" android:background="#333333" android:text=")" android:textColor="@android:color/white" android:textSize="25sp" /> <Button android:id="@+id/divisor_button" android:layout_height="fill_parent" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="0.25" android:background="#333333" android:text="÷" android:textColor="@android:color/white" android:textSize="25sp" /> <Button android:id="@+id/backspace_button" android:layout_height="fill_parent" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="0.25" android:background="#ffa500" android:text="C" android:textSize="25sp" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="0.2" > <Button android:id="@+id/seven_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="7" /> <Button android:id="@+id/eight_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="8" /> <Button android:id="@+id/nine_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="9" /> <Button android:id="@+id/product_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:background="#333333" android:textSize="25sp" android:textColor="@android:color/white" android:text="×" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="0.2" > <Button android:id="@+id/four_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="4" /> <Button android:id="@+id/five_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="5" /> <Button android:id="@+id/six_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="6" /> <Button android:id="@+id/minus_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:background="#333333" android:textSize="25sp" android:textColor="@android:color/white" android:text="-" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="0.2" > <Button android:id="@+id/one_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="1" /> <Button android:id="@+id/two_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="2" /> <Button android:id="@+id/three_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="3" /> <Button android:id="@+id/plus_button" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="0.25" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:background="#333333" android:textSize="25sp" android:textColor="@android:color/white" android:text="+" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_weight="0.2" > <Button android:id="@+id/point_button" android:layout_height="fill_parent" android:layout_width="wrap_content" android:layout_weight="0.5" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="40sp" android:background="@android:color/darker_gray" android:text="." /> <Button android:id="@+id/zero_button" android:layout_height="fill_parent" android:layout_width="wrap_content" android:layout_weight="0.5" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="@android:color/darker_gray" android:text="0" /> <Button android:id="@+id/equal_button" android:layout_height="fill_parent" android:layout_width="wrap_content" android:layout_weight="3.1" android:layout_marginLeft="1dp" android:layout_marginBottom="1dp" android:textSize="25sp" android:background="#00CC00" android:text="=" /> </TableRow> </TableLayout> </LinearLayout></span>
上面的代码中反复用到了
<span style="font-size:18px;"> android:layout_weight=""</span>要想设置好一个布局就必须了解权重的概念android:layout_weight的真实含义
下节预报:
滚动视图ScrollView