在android安排控件布局時,padding和margin經常被用到。
其具體解釋可以通過一張圖展現,如下,
兩個屬性表示的意義與web編程相同。
深入理解:
padding約束的是控件或布局顯示的內容距離邊框的距離,沿垂直邊框向內壓縮,padding越大,內容顯示控件越小;
margin這是沿垂直邊框向外延伸的距離, 它的意思就是給控件加了一個一定距離的空白邊,顯示效果只與值大小正負相關,與其他元素邊界無關。
值得注意的是,padding值的范圍[0,任意正數](默認為0),而margin的值則有正有負。
想理解負值,首先要理解0值,當margin=“0dip”時,控件外延擴展的邊為0,也就是邊界挨着其它邊緣;
margin>0,是給控件添加白邊,讓其外延變大,過大時會影響到整個控件顯示大小;
margin<0,一般用於單一方向顯示,也就是將該控件與其相鄰控件的距離是負值,從顯示效果講就是覆蓋某一方向上其它控件。
總言之,這兩個屬性是某個控件的屬性,控制的只是該控件的顯示,表示的意義也不牽扯父控件或其它相鄰控件,所以理解時要注意,不要混淆。
Start和End則是變化的相對概念,如下,
- paddingStart & paddingEnd 是根據左右對齊方式來起作用的(Level-API-17 )
- 左對齊時, paddingStart 對應 paddingLeft, paddingEnd 對應 paddingRight
- 右對齊時, 正好相反
以上個人理解,轉載注明出處,多謝。