Android中的佈局
佈局文件的創建
創建佈局文件之前我們需要知道佈局文件具體的位置,如下圖
那具體如何進行創建,在
layout---->new----->LayoutResourceFile
File name
佈局文件的文件名
Root elenment
佈局類型,如:
linearlayout、Relativelayout、FrameLayout、TableLayout、absolutelayout
1.線性佈局(linearlayout)
線性佈局是指子控件以水平或垂直方式排列
android:orientation爲horizonal,表示的是水平佈局,頂部,底部,水平居中生效
android:orientation爲vertical,表示的是垂直佈局,左右對齊,垂直居中生效
另如果使用以下方法
android:layout_weight = "1"//表示按比例分配剩餘寬度,稱爲權重
android:layout_width = "0dp"//水平佈局使用該方法
如果是垂直佈局使用以下方法
android:layout_weight = "1"//表示按比例分配剩餘寬度,稱爲權重
android:layout_height = "0dp"//垂直佈局使用該方法
舉例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textview_id"
android:text="@string/textview_id"/>
</LinearLayout>
2.相對佈局(Relativelayout)
默認的是頂部左對齊,沒有方向,故沒有android:orientation,並無權重的概念
幾個常用的方法如下:
android:id = “@+id/tv4”//定義一個id
android:layoout_toRightof = "@id/tv3"//引用一個id
android:layout_centerInParent = "true"//水平垂直都居中
android:layout_above = “@id/tv2” //引用id,表示在tv2之上
android:layout_alignleft = “@id/tv2”//與tv2左對齊
相對佈局是子控件以控件之間的相對位置或子類控件相對於父容器的位置排列
- 相對於父容器的位置屬性
android:layout_alignParentBottom(在父容器最下,true或false)
android:layout_alignParentTop(在父容器最上)
android:layout_alignParentLeft(在父容器最左)
android:layout_alignParentRight(在父容器最右)
android:layout_marginTop(和父容器上端的距離,單位dp)
android:layout_marginBottom(和父容器下端的距離)
android:layout_marginLeft(和父容器左端的距離)
android:layout_marginRight(和父容器右端的距離)
android:layout_margin(和父容器四周的距離)
android:layout_centerVertical(在父類的垂直居中,true或false)
android:layout_centerHorizontal(在父類的水平居中)
android:layout_centerInParent(在父類的水平垂直居中)
- 相對於控件的位置屬性
android:layout_below(位於某控件下方,以id標記)
android:layout_above(位於某控件上方)
android:layout_toLeftOf(位於某控件左方)
android:layout_toRightOf(位於某控件右方)
android:layout_alignBottom(與某控件底部對齊,以id標記)
android:layout_alignTop(與某控件頂部對齊)
android:layout_alignLeft(與某控件左邊緣對齊)
android:layout_alignRight(與某控件右邊緣對齊)
android:layout_alignBaseline(與某控件的文本內容在一條直線上)
3.幀佈局(FrameLayout)
默認是左上角對齊,幀佈局相當於一個TestView,常用的方法如下:
android:layout_gravity = "center"
4.表格佈局(TableLayout)
不用指定寬和高
<tablelayout
<tableRow
//行
/>
<TestView
//列
/>
/>
5.絕對佈局(absolutelayout)
指定x,y座標,一般用的比較少,在電視這塊會用到