1. 程式人生 > >安卓學習(初)第三章(2)(《第一行程式碼》)

安卓學習(初)第三章(2)(《第一行程式碼》)

一、佈局的線性佈局<LinearLayout

1、示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
      ……
     />
   <Button
      ……
     />
    …… ……
</LinearLayout>

這樣寫,佈局就會出現水平排列的一行按鍵。如果android:orientation="horizontal"改成android:orientation="vertical",則就會出現一列按鍵。這分為水平排列方式、垂直排列方式就所謂的線性佈局。

2、用垂直還是水平排列的方式(android:orientation設定為"horizontal"或"vertical")都不能同時把控制元件大小設定為"match_parent"。

3、此時的控制元件對齊方式(用android:layout_gravity指定)根據android:orientation設定不同有不同限制。如是水平排列,控制元件的對齊方式就不能設定水平方向對齊方式了,垂直排列也同理。而控制元件對齊方式的選擇和文字對齊方式android:gravity的一樣(見之前的筆記)。

4、android:layout_weigh用法

用了線性排列方式後,可以通過android:layout_weigh=來調多個控制元件各自佔空間的比例。如有兩個控制元件,其中一個指定android:layout_weigh="1";另一個指定android:layout_weigh="3",用水平排列方式(android:orientation="horizontal"),那麼結果就是這兩個控制元件以水平方式排列,且佔空間位置是1:3。若是水平排列,用了android:layout_weigh=這個指定後,寬度就不用指定了,若是垂直排列則在這指定下高度就不用指定了。此外如果有多個控制元件,只有其中幾個指定了android:layout_weigh,其他控制元件獨立指定了寬和高,那麼佈局就會讓獨立指定大小的控制元件佔好位置和空間再讓其中指定了android:layout_weigh的控制元件按指定值以比例瓜分空間。

二、相對佈局<RelativeLayout

1、相對於父佈局進行定位。如:android:layout_alignParentLeft="true"表示靠左;android:layout_alignParentTop="true"表示置頂;android:layout_alignParentBottom="true"表示置底,這幾個指定可以按邏輯兩個組合混合用。android:layout_centerInParent這個是表示居中(螢幕正中間),單獨使用。

2、相對於控制元件進行定位。如:android:layout_above="@+id/button1"表示該控制元件位於button1的正上方,指定的是一個控制元件的id。同理還有android:layout_below="@+id/button1"、android:layout_toLeft0f="@+id/button1"等。此外,android:layout_alignbelow="@+id/button1"表示該控制元件的上邊緣和button1的下邊緣對齊android:layout_alignLeft="@+id/button1"表示和button1的左邊緣對齊,以此類推。注意!引用一個控制元件的id時,該控制元件一定要在引用控制元件的後面(和C語言的函式呼叫和巢狀類似的死規則)。

三、幀佈局<FrameLayout

1、在完成各個控制元件的基礎屬性設定情況下,該佈局方式會預設所有控制元件在螢幕的左上角顯示,後來的控制元件覆蓋在先來的控制元件上。

2、幀佈局一樣可以用layout_gravity屬性來逐個指定控制元件的在佈局中的對齊方式。

四、百分比佈局<android.support.percent.PercentFrameLayout或<android.support.percent.PercentRelativeLayout

1、不同於之前的三種佈局,由標籤名稱可以猜到該佈局是對FrameLayout和RelativeLayout這兩種佈局的功能拓展。這種佈局中可以不再使用wrap_content等方式來指定控制元件的大小而是允許直接指定控制元件在佈局中佔的百分比。

2、首先要在app/build.gradle檔案的dependencies程式碼閉包內新增這個依賴:compile'com.android.suppport:percent:24.2.1'

3、該佈局方式的控制元件大小設定方式如:app:layout_widthPercent="50%"   app:layout_heightPercemt="50%",表是寬高都佔螢幕的50%。此時的控制元件對齊方式和前面三種佈局一樣寫法。注意!<android.support.percent.PercentFrameLayout的會繼承<FrameLayou所有特性,<android.support.percent.PercentRelativeLayout會繼承<RelativeLayou所有特性。

*4、老版本的Android Studio用百分比佈局沒有寫android:layout_width等這些指定控制元件高和寬大小的程式碼會提示錯誤,我們直接忽略就行,不影響程式執行。