Layout_Margin與padding的區別以及Layout_gravity與gravity的區別
平時開發中這幾個屬性是我們經常使用的幾個屬性,偶爾腦子一糊塗,就容易弄混這些屬性,下面,我就仔細介紹一下這幾個屬性:
1.首先介紹Layout_Margin與padding:
1.1.不設置任何Layout_Margin或者padding屬性
1.2設置padding屬性:
android:padding="50dp"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
上面再LinearLayout裡設置了padding屬性,顯示效果如下:
可以看見LinearLayout內部的控件全部都離邊框一段距離了
下面繼續:
android:padding="50dp"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
在之前的基礎上,又在第二個Button中添加了一個padding屬性,顯示效果如下:
清晰了沒有?原來padding就是會影響你設置了padding屬性的這個控件的內部的狀態,。
1.3.設置Layout_Margin:
上面就在第一個Button中設置了margin值,看顯示效果與第一張沒設置任何東西得圖作對比哦:
在設置一個看看:
顯示效果如下:
看出來沒有?layout_Margin就是指你設置了這個屬性的控件,在他的父控件裡與其他的控件之間的位置,千萬不要以為這個是就是子控件在父控件裡的相對位置哦!這樣表達式不正確的啊,第二幅圖就直接說明了這一點,是控件之間的關系,
總結:padding是指設置了這個屬性的控件內部的位置變化關系,比如TextView中或者Button中設置了的話,那麼這些控件上面顯示的text位置就會發生相應的變化,如果在父控件中設置了這個屬性,比如LinearLayout中設置了這個屬性,那麼它內部的子控件的位置就會發生變化!
Layout_Margin是指設置了這個屬性的控件,與他平級的控件之間的位置關系,(Ps:padding是內部的位置關系)!
2.Gravity與Layout_gravity之間的關系:
2.1不設置任何東西:
設置gravity:
android:gravity="center"
android:textSize="30sp"
android:background="#aa2288"/>
gravity屬性,會影響設置了這個屬性的控件的內部的狀態。
2.只設置Layout_gravity:
android:layout_gravity="center"
android:textSize="30sp"
android:background="#aa2288"/>
設置了layout_gravity這個屬性,會影響設置了這個屬性的控件相對他的父控件裡的位置變化。
結論:gravity影響控件內部狀態,Layout_gravity會影響這個控件在父控件 裡的狀態。