屬性padding和margin的區別

2021-07-29 20:51:54 字數 3010 閱讀 5950

因為實際在使用中經常會遇到還是很容易搞混,不知道該如何去選擇邊距的情況,所以單獨把這個課題拎出來調查,實踐了一番。

1. margin,指的是當前控制項和父控制項的邊距。

舉乙個例子說明:

//第一層布局①背景全黑色,並且高和框都是match_parent

//第二層布局②設定為全白,並且設定和父控制項的邊距30dp

android:layout_marginleft="30dp">

//文字框背景是黑色的,文字是白色的。

android:layout_width="match_parent"//距離父控制項(也就是第二層布局是60dp)

2. padding,指的是當前控制項的內邊距,即控制項中內容距離控制項的邊緣的距離。

同樣舉乙個例子說明:

//第一層布局①背景全黑色,並且高和框都是match_parent

android:paddingleft="30dp" //設定文字內容距離edittext的左邊框是30dp

android:paddingright="60dp" //設定文字內容距離edittext的右邊框是60dp

android:textcolor="#000000" />

從例子上來看,edittext的寬度因為是隨內容變化,所以實際寬度是距離左邊框的30dp+「hello world!"文字寬度+距離右邊框60dp 三者合在一起的寬度。

3. 以上兩個例子基本上可以理解了margin和padding的區別,但是這裡引入了乙個問題,如何設定兩個控制項之間的距離呢?

這裡我的理解是,對於不同的布局有不同的方法,說法很奇怪,還是以例子進行說明吧。

對於relativelayout來說,本來就是相對布局,所以它在控制控制項和控制項之間的位置有很多屬性可以使用,常用的有以下:

3-1. 相對于父布局定位的屬性(屬性可以結合使用,分別實現左上角,右上角,左下角,右下角等方位)對應的值只有true和false

android:layout_alignparentleft靠左

android:layout_alignparenttop靠上

android:layout_alignparentright靠右

android:layout_alignparentbottom靠下

android:layout_centerinparent居中

3-2. 相對於控制項定位的屬性(屬性可以結合使用,分別實現左上角,右上角,左下角,右下角等方位)因為是相對控制項定位,所以對應的值是對應控制項的id

android:layout_toleftof左邊

android:layout_above上方

android:layout_torightof右邊

android:layout_below下方

3-3. 其他一些屬性

android:layout_alignleft="@id/***"將控制項的左邊緣和給定id控制項的左邊緣對齊

android:layout_alignright="@id/***"將控制項的右邊緣和給定id控制項的右邊緣對齊

android:layout_aligntop="@id/***"將控制項的上邊緣和給定id控制項的上邊緣對齊

android:layout_alignbottom="@id/***"將控制項的底邊緣和給定id控制項的底邊緣對齊

android:layout_toleftof="@id/***"將控制項的右邊緣和給定id控制項的左邊緣對齊

android:layout_torightof="@id/***"將控制項的左邊緣和給定id控制項的右邊緣對齊

android:layout_centerhorizontal="true"將控制項置於水平方向的中心位置

android:layout_centervertical="true"將控制項置於垂直方向的中心位置

android:layout_alignparentleft="true"將控制項的左邊緣和父控制項的左邊緣對齊

android:layout_alignparenttop="true"將控制項的上邊緣和父控制項的上邊緣對齊

android:layout_alignparentright="true"將控制項的右邊緣和父控制項的右邊緣對齊

android:layout_alignparentbottom="true"將控制項的底邊緣和父控制項的底邊緣對齊

舉乙個例子說明:

對於linearlayout來說,控制兩個控制項之間的距離我認為還是使用margin。

因為linearlayout本來就是線性排列,所以只需要設定margin就可以了。

例如:

<?xml version="1.0" encoding="utf-8"?>

注意一點:如果linearlayout是水平排列的,使用的是marginleft和marginright。

如果是垂直排列的,使用的是margintop和marginbottom。

如果只使用的是margin,那就是四個方向全部都設定了邊距。

margin和padding屬性的區別

本文將講述html和css的關鍵 盒子模型 box model 理解box model的關鍵便是margin和padding屬性,而正確理解這兩個屬性也是學習用css布局的關鍵.注 為什麼不翻譯margin和padding?原因一,在漢語中並沒有與之相對應的詞語 原因二 即使有這樣的詞語,由於在編寫...

CSS中margin和padding屬性的區別

本文將講述html和css的關鍵 盒子模型 box model 理解box model的關鍵便是margin和padding屬性,而正確理解這兩個屬性也是學習用css布局的關鍵.注 為什麼不翻譯margin和padding?原因一,在漢語中並沒有與之相對應的詞語 原因二 即使有這樣的詞語,由於在編寫...

解決布局控制項的屬性重新設定問題 Margin

問題提出 relativelayout布局中,有時經常會出現達不到自己的要求,這就需要重新設定一定的高度 寬度等來達到自己的要求。現象 1 如果在oncreate方法中,讀取match parent,wrap content布局高度 寬度結果都為0。根本無法達到自己想要的結果。2 如果想用其他方法試...