10.LinearLayout学习
1.以行为布局,下面是基本使用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
orientation :水平或垂直。
fill_parent:填充尽可能多的空间
wrap_content:根据内容来控制大小
2.布局内控件
2.1 android:gravity 设置对其方式。
android:gravity="right"
2.2 android:layout_weight 设置高度
默认为0,就是需要多少显示多少。
1,显示整个,
2,显示1/2 ...
3.继承关系
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.LinearLayout
所以它也是一个View,可以进行一些View的操作。
11.AbsoluteLayout和FrameLayout
1.AbsoluteLayout 要指定精确坐标的一种布
绝对布局。不推荐使用。
<?xml version = "1.0" encoding = "utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dip"> <TextView android:id="@+id/lable" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="请输入用户名:"/> <EditText android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_x="100dip" android:layout_y="20dip"/> <Button android:id="@+id/cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="10dip" android:layout_y="50dip" android:text="取消"/> </AbsoluteLayout>
2.FrameLayout 框架布局
以层叠的方式展示。
它的大小是最大子控件的大小。
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ff000000" android:gravity="center" android:text="1"/> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ff654321" android:gravity="center" android:text="2"/> <TextView android:layout_width="50dp" android:layout_height="50dp" android:background="#fffedcba" android:gravity="center" android:text="3"/> </FrameLayout>
android:gravity 来确定位置 上下左右。
12.RelativeLayout
1.使用容器间的相对位置。
2.内部属性:
android:layout_above 将该控件的底部置于给定ID的控件之上 android:layout_below 将该控件的顶部置于给定ID的控件之下 android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐 android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐 android:layout_alignBaseline 该控件的baseline和给定ID的控件的baseline对齐 android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘对齐 android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐 android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐 android:layout_alignTop 将该控件的顶部边缘与给定ID控件的顶部边缘对齐 android:layout_alignParentBottom 如果该值为true,则将该控件的底部和父控件的底部对齐 android:layout_alignParentLeft 如果该值为true,则将该控件的左边缘和父控件的左边缘对齐 android:layout_alignParentRight 如果该值为true,则将该控件的右边缘和父控件的右边缘对齐 android:layout_alignParentTop 如果该值为true,则将该控件的顶部和父控件的顶部对齐 android:layout_centerHorizontal 如果该值为true,该控件将被置于水平方向的中央 android:layout_centerInParent 如果该值为true,该控件将被置于父控件水平方向和垂直方向都居中 android:layout_centerVertical 如果该值为true,该控件将被置于垂直方向的中央
3.官网实例:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue" android:padding="10px" > <TextView android:id="@+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Type here:" /> <EditText android:id="@+id/entry" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/editbox_background" android:layout_below="@id/label" /> <Button android:id="@+id/ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/entry" android:layout_alignParentRight="true" android:layout_marginLeft="10px" android:text="OK" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/ok" android:layout_alignTop="@id/ok" android:text="Cancel" /> </RelativeLayout>
效果:
12.RelativeLayout补充
13.Table.Layout学习
1.表格布局,以行和列来表示。
2.只有水平和竖直来排列。
3.如果tableRow 不在TableLayout里面。则只代表LinearLayout。
4.在布局中,如果需要文字在一条水平线上,可以使用 layout_alignbaseLine = "对应空间的id"
3.官网例子:
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <TextView android:text="@string/table_layout_4_open" android:padding="3dip" /> <TextView android:text="@string/table_layout_4_open_shortcut" android:gravity="right" android:padding="3dip" /> </TableRow> <TableRow> <TextView android:text="@string/table_layout_4_save" android:padding="3dip" /> <TextView android:text="@string/table_layout_4_save_shortcut" android:gravity="right" android:padding="3dip" /> </TableRow> </TableLayout>
结果: