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
設置該佈局是否使用默認的頁邊距
相關文章
相關標籤/搜索