這一次咱們來討論一下LinearLayout這種佈局方式。相對來講,這個佈局方式還比較簡單。經過設置它的屬性android:orientation來決定其包含的View是以水平方向仍是垂直方向擺放。 android
Constant | Value | Description |
---|---|---|
horizontal | 0 | Defines an horizontal widget. |
vertical | 1 | Defines a vertical widget. |
即android:orientation="horizontal"或者android:orientation="vertical"。 佈局
若是咱們選擇的是水平擺放(horizontal),那麼LinearLayout所包含的View會一個挨着一個在一行擺放,全部的View都在一行中,就像下圖這樣: spa
若是咱們選擇的是水平擺放(vertical),那麼LinearLayout所包含的View會一個挨着一個豎着擺放,每一個View佔一行,就像下圖這樣: code
從上面兩個效果圖,能夠很清晰看出兩種不一樣的佈局方式差別很大。咱們一共使用的是一個TextView和四個按鈕。正常狀況下它們應該都顯示出來,可是咱們看到水平擺放時,第三個按鈕已經擠成一團了,第四個按鈕甚至沒有顯示了。而垂直襬放時,這五個view都顯示出來了,每一個View各自單獨佔一行。 orm
接下來,咱們再爲LinearLayout增長一種新的屬性:padding。我對它的解釋是邊緣補白(留空白),就是讓LinearLayout中的內容距離邊緣留出必定的空白,這實際上是爲了美觀,好看。如今讓咱們來看看實際效果,就以上面的五個View爲例吧,給LinearLayout增長下面兩個屬性值: xml
android:paddingLeft="16dp" android:paddingRight="16dp"
運行效果以下圖所示: ip
能夠很明顯的看出來,在這些View的左邊出現了一些空白,是否是? utf-8
下面,咱們來看官網上的一個例子: get
<?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:paddingLeft="16dp" android:paddingRight="16dp" android:orientation="vertical" > <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/to" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/subject" /> <EditText android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="top" android:hint="@string/message" /> <Button android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="right" android:text="@string/send" /> </LinearLayout>
咱們先看看它的運行效果是什麼樣子的: string
這個界面有點相似於電子郵件的書寫界面。 咱們細看一下那個XML佈局文件的內容。
<LinearLayout>元素的幾個屬性咱們在前面的介紹中,基本上已經掃清了。除了那個fill_parent,暫時我尚未分清它與match_parent的區別,不過這個並不影響咱們看其它的View。
在<LinearLayout>中有三個<EditText>和一個<Button>。三個<EditText>中都有兩個咱們已經熟悉的屬性,那就是androdi:layout_width和android:layout_height。而它們的取值出現了一些新的變化。
首先,fill_parent,咱們能夠理解爲LinearLayout容許有多寬,我就擴展爲多寬。