因為實際在使用中經常會遇到還是很容易搞混,不知道該如何去選擇邊距的情況,所以單獨把這個課題拎出來調查,實踐了一番。
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 如果想用其他方法試...