1. 程式人生 > >Android佈局中margin與padding的區別

Android佈局中margin與padding的區別

我們知道Android開發不僅僅有程式碼的動態控制,而且還涉及到佈局的靜態搭建(xml)。幾乎在每一個xml檔案中,我們總會看到margin和padding這兩個屬性,今天讓我們初步探究一下它們之間的區別。

首先為了便於說明,我們先畫一個三層佈局,如下圖。

這裡寫圖片描述

這裡佈局的意思是廣義的,泛指View等等。

padding的含義

這裡寫圖片描述

在日常英語中,padding的含義為“墊料”,“襯料”等。在Android佈局中,padding意味著該屬性所在的主控制元件中內部佈局(子控制元件)的邊距。如上圖,當我們設定佈局2的padding屬性時,其實影響的是在其內部的佈局3與佈局2的距離,其中黑線表示paddingLeft的具體的左邊距值。當上下左右padding值都相等時,可以用padding代替這四個。即:

android:paddingLeft = “10dp”
android:paddingRight = “10dp”
android:paddingTop = “10dp”
android:paddingBottom = “10dp”

android:padding = “10dp”
是等價的。

margin的含義

這裡寫圖片描述

margin與padding屬性恰恰相反。在Android佈局中,margin意味著該屬性所在的主控制元件裡外部佈局(父控制元件)的邊距。如上圖,當我們設定佈局2的padding屬性時,其實影響的是在其外部的佈局1與佈局2的距離,其中黑線表示layout_marginLeft的具體的左邊距值。同理,當上下左右margin值都相等時,可以用margin代替這四個。即:

android:marginLeft = “10dp”
android:marginRight = “10dp”
android:marginTop = “10dp”
android:marginBottom = “10dp”

android:margin = “10dp”
也是等價的。

margin與padding的相對性

我們回頭再來看看這張佈局圖,思考一個問題:

在佈局2中設定padding和在佈局3中設定margin的效果是相同的嗎?

這裡寫圖片描述

5分鐘過去了。。我們來看一下例項演示:

padding:
這裡寫圖片描述

margin:
這裡寫圖片描述

其實android佈局中有許多屬性都是具有相對性的,這次就先說這麼多~!