1. 程式人生 > >寫給初學者05_android_Layout_RelativeLayout

寫給初學者05_android_Layout_RelativeLayout

安卓05_佈局-相對佈局_RelativeLayout

Java的命名規範確實能帶來很多好處,最明顯的就是望文生義。RelativeLayout即為相對佈局,Layout在前面我們也知道它是ViewGroup的子類,也就是它當中可以存放很的檢視,而存放的方式則是Relative,也就是相對。這一點在很早念初中的時候,應該都是接觸過相對運動的概念的。而相對運動是需要一個參照物的,一個物體是否運動是需要一個具體的參照物才能確定。而這裡相對佈局,一個檢視的位置是也是要借鑑具體的參照物才能完成的。

官方解釋:一個佈局,其中可以相互關聯或父容器描述控制元件的位置。

這句話告訴我們控制元件的位置需要我們給以參照物,而參照物的選擇分為兩種

  1. 其他控制元件(相互關聯)
  2. 父容器佈局

以父容器作為參照物

預設操作

這裡當我們沒有手動給定任何的參照物的時候,安卓是以左上角作為參照物的。比如我們的第一個程式HelloWorld,並沒有做任何處理卻發現文字在左上角。



RelativeLayout預設情況下是以左上角作為參照物,這個是TextView的位置決定是通過以它的父容器,也就是RelativeLayout來確定的,而父容器是充滿整個適應整個螢幕的(match_parent)。

居中操作

對齊操作

結合

居中也好,對其也好。都是以父容器作為參照物的,並且兩個結合起來也是能夠達到一些效果的。center居中,alignParent和父容器對齊。

以控制元件作為參照物

首先需要明白的事情是,既然是以控制元件彼此作為參照物,那麼就必須能很清楚的分析出誰是誰。這裡View當中共有的屬性除了管和高以外,有一個id屬性,並且id屬性是會配置到R檔案去的,是很方便訪問的。所以我們需要給控制元件追加id屬性,並且有一個唯一的id屬性值。

位置確定處理操作(在誰的上下左右)



當然這裡效果看起來很抽象,但是確實也達到了在中心參照物的上下左後了,為了更加明確我們可以左上對齊操作。

對齊操作(和誰上下左右對齊)


重要的點:

  1. 通過ID來做關聯
  2. 結合使用效果更好

一副總結性的圖:



在這裡這些屬性一定要根據它的特點有個很好的分類。便於理解消化,更要做的靈活運用。

番外

當然這裡僅僅靠這些只能處理到的是位置問題,我們還沒有處理到的是邊距問題,每個控制元件之間除了位置問題野外還會有邊距問題,這樣我們才能很好的表示一個佈局.

  1. 內邊距 padding
  2. 外邊距 margin

我們在這裡是為了表示控制元件之間的距離,所以選擇使用的是外邊距margin,既然是外邊距又是在一個二維平面上,所以外邊距是具備上下左右的方向性的。

這裡加入的只有一條margin語句,並沒有給定方向,卻可以發現四個方向上都有了邊距。

android:layout_marginBottom 離某元素底邊緣的距離
android:layout_marginLeft 離某元素左邊緣的距離
android:layout_marginRight 離某元素右邊緣的距離
android:layout_marginTop 離某元素上邊緣的距離

掌握位置的確定方式,靈活運用。