Android開發入門之學習筆記(四):程序窗口的佈局(二)

這一次咱們來討論一下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

padding

接下來,咱們再爲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容許有多寬,我就擴展爲多寬。

相關文章
相關標籤/搜索