Android Layout各種布局
Android Layout各種布局
LinearLayout(線性布局)
提供了控件水平垂直排列的模型,同時可以通過設置子控件的weight布局參數控制各個控件在布局中的相對大小。
水平(vertical)垂直(horizontal)
fill-parent:占滿整個屏幕,
wrap-content:剛好適合控件內容的大小
對齊方式gravity取值:
top:不改變大小,位置置于容器的頂部
bottom:不改變大小,位置置于容器的底部
left:不改變大小,位置置于容器的左邊
right:不改變大小,位置置于容器的右邊
center_vertical:不改變大小,位置置于容器的縱向中央部分
center_horizontal:不改變大小,位置置于容器的橫向中央部分
center:不改變大小,位置置于容器的橫向和縱向的中央部分
fill_vertical:可能的話,縱向延伸可以填滿容器
fiil_horizontal:可能的話,橫向延伸可以填滿容器
fiil:可能的話,縱向和橫向延伸填滿容器
AbsoluteLayout(坐標布局)可以讓子元素指定準確的x/y坐標值,并顯示在屏幕上。(0, 0)為左上角,當向下或向右移動時,坐標值將變大。AbsoluteLayout沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。我們通常不推薦使用AbsoluteLayout,除非你有正當理由要使用它,因為它使界面代碼太過剛性,以至于在不同的設備上可能不能很好地工作。
Android:layout_x/layout_y=”56px”確定控件位置
RelativeLayout(相對布局)允許子元素指定他們相對于其它元素或父元素的位置(通過ID指定)。因此,你可以以右對齊,或上下,或置于屏幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在屏幕的中央,那么相對于這個元素的其它元素將以屏幕中央的相對位置來排列。如果使用XML來指定這個layout,在你定義它之前,被關聯的元素必須定義。
Android:layout_centerInparent,將當前控件放置于起父控件的橫向和縱向的中央部分
Android:layout_centerHorizontal,使當前控件置于父控件橫向的中央部分
Android:layout_centerVertival,使當前控件置于父控件縱向的中央部分
Android:layout_alignParentBottom,使當前控件的底端和父控件底端對齊
Android:layout_alignParentLeft,使當前控件的左端和父控件左端對齊
Android:layout_alignParentRight,使當前控件的右端和父控件右端對齊
Android:layout_alignParentTop,使當前控件的頂端和父控件頂端對齊
Android:layout_alignParentBottom,使當前控件的底端和父控件底端對齊
上述屬性只能設置Bool類型的值,“true”或“false”
Android:layout_below/layout_above/ layout_toLeftOf/ layout_toRightOf =“@id/”使當前控件置于給出id的空間的下方/上方/左邊/右邊
Android:layout_marginBottom/layout_marginLeft/layout_marginRight/layout_marginTop=”30px”使當前控件底部/左邊/右邊/頂部空出相應像素空間
FrameLayout(單幀布局)是最簡單的一個布局對象。它被定制為你屏幕上的一個空白備用區域,之后你可以在其中填充一個單一對象 — 比如,一張你要發布的圖片。所有的子元素將會固定在屏幕的左上角;你不能為FrameLayout中的一個子元素指定一個位置。后一個子元素將會直接在前一個子元素之上進行覆蓋填充,把它們部份或全部擋住(除非后一個子元素是透明的)。
Android:src=”@drawable/”屬性指定所需圖片的文件位置,用ImageView顯示圖片時,也應當用android:src指定要顯示的圖片
TableLayout(表格布局)以行列的形式管理子控件,每一行為一個TableRow的對象,TableRow也可以添加子控件
android:collapseColumns=“n”隱藏TableLayout里面的TableRow的列n
android:stretchColumns=“n”設置列n為可延伸的列
android:shrinkColumns=“n”設置列n為可收縮的列