Android布局管理器

布局管理器的继承关系java

为了适应各式各样的界面风格,Android系统提供了6种布局,这6种布局分别是:android

LinearLayout(线性布局)、TableLayout(表格布局)、RelativeLayout(相对布局)、AbsoluteLayout(绝对布局)、FrameLayout(框架布局)、GrilLayout(网格布局)。框架


1LinearLayout(线性布局)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
</LinearLayout>
 xmlns:android="http://schemas.android.com/apk/res/android"

是android的命名空间。ide

      所谓的线性布局管理器,即它内部的视图(控件)按线性方式排列。布局

线性布局管理器提供了两种线性方式:一是水平布局,按水平方向布置控件;二是垂直方向、按垂直方向布置控件。spa

其中andorid:orientaion表示的正是设置线性布局的方向,属性有:vertical 和 horizontal 分别表示垂直布局和水平布局code

LinearLayout经常使用XML属性xml

android:baselineAligned 设置该布局是(true)否(false)与子元素基线对齐。
android:divider 设置垂直布局时两个按钮之间的分隔条。
android:gravity

设置布局内组件(子元素)的对齐方式。继承

属性: top, bottom, left, right, center_vertical,center_horizontal,fill_vertical, fill_horizontal,center, fill,clip_vertical, clip_horizontal;ip

可用 | 组合多种对齐方式 : 如 left|center_vertical 左侧垂直居中

android:measureWithLargestChild 该属性为true的时候, 全部带权重的子元素都会具备最大子元素的最小尺寸。
android:orientation 设置布局内组件排列方式, 设置为 horizontal(水平), vertical(垂直)。


线性部件中子元素支持的经常使用属性:

android:layou_gravity :指定子元素在LinearLayout(父容器)中的对齐方式

android:layou_weight :指定子元素在LinearLayout中所占的权重

提示:

与 android:layou_gravity 显示的有android:gravity 是父容器用于指定子元素的对其方式。

注意:

LinearLayout不会换行,当组件一个挨着一个排列到头时,超出的组件就不会被显示出来了。


2TableLayout(表格布局)

     表格布局管理器、是将其中的视图按行、列进行排列。TableLayou并不须要指定行数和列数,而是经过添加TalbleRow控制行数、其余组件来控制列数。

直接向TableLayout中添加组件, 就至关于直接添加了一行,TableLayout中列宽由该列最宽的单元格决定。

    表格布局中单元格的行为方式

  • Shrinkable :  该列全部单元格宽度能够被收缩, 保证表格能适应父容器的宽度;

  • Stretchable :  该列全部单元格的宽度能够被拉伸, 保证表格能彻底填满表格剩余空间;

  • Collapsed :  该列全部单元格会被隐藏;

TableLayout经常使用XML属性

android:collapsedColumns 设置须要被隐藏的列的序号,   多列序号间用逗号隔开。
android:stretchColumns 设置容许被拉伸的列的序列号, 多个序号间用逗号隔开。
android:shrinkableColumns 设置容许被收缩的列的序号, 多个序号间用逗号隔开。
 <!-- 第一个表格第2列容许收缩,第3列容许拉伸 -->
  <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="0"
        android:stretchColumns="1" >

        <!-- 一行3个按钮 -->
        <TableRow>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="可收缩按钮" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="可拉伸按钮" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="普通按钮" />
        </TableRow>
    </TableLayout>


3RelativeLayout(相对布局)

    相对布局容器中 子组件  位置 是以 兄弟组件、父容器 的位置做为参照决定的。

RelativeLayout 的XML属性

android:gravity 设置该布局容器内各子组件的对齐方式。
android:ignoreGravity 设置哪一个组件不受gravity 属性影响。

只能设为boolean值的XML属性

    android:layout_centerHorizontal    是否水平居中于父容器中

    android:layout_centerVertical      是否垂直居中于父容器中

    android:layout_centerInParent      是否位于中央于父容器中

    android:layout_alignParentBottom   是否底端对齐于父容器中

    android:layout_alignParentTop      是否顶端对齐于父容器中

    android:layout_alignParentLeft     是否左边对齐于父容器中

    android:layout_alignParentRight    是否右边对齐于父容器中

只能设为其余UI组件ID值的XML属性

    android:layout_toLeftOf      位于所给 id 组件左侧

    android:layout_toRightOf     位于所给 id 组件右侧

    android:layout_above         位于所给id组件的上边

    android:layout_below         位于所给id组件的下方

    android:layout_alignTop      与所给id组件顶部对齐

    android:layout_alignBottom   与所给id组件底部对齐

    android:layout_alignLeft     与所给id组件左边对齐

    android:layout_alignRight    与所给id组件右边对齐


4AbsoluteLayout(绝对布局)

        以X坐标,Y坐标来控制组件的位置,布局容器再也不管理组件位置, 大小, 这些均可自定义

AbsoluteLayout XML属性

android:layout_x   指定组件的x坐标
android:layout_y  
指定组件的y坐标
android:layout_width<height>
是指定宽度是否充满父容器或者仅仅包含子元素的
android:width<height>  
指定组件的宽度


5FrameLayout(框架布局)

        又名帧布局。帧布局中,每一个组件占据一帧(层),这些帧会根据gravity属性执行自动对齐(把组件一个个叠加在一块儿)。

FrameLayout 经常使用XML属性

android:foreground
设置该帧布局 的前景图像
android:foregroundGravity
定义绘制前景图像的 gravity属性(对齐 属性)


6GrilLayout(网格布局)

GrilLayout 的XML属性

android:alignmentMode
设置网格布局管理器的对齐模式
 android:columnCount
设置该网格布局的列数
 android:columnOrderPreserved
设置网格容器是否保留列序列号 
android:rowCount
设置该网格的行数
 android:rowOrderPreserved
设置该网格容器是否保留行序列号
 android:useDefaultMargins
设置该布局是否使用默认的页边距
相关文章
相关标签/搜索