Android 佈局屬性值
padding和margin屬性在開發中十分常用,padding意為“填充”,一般用來在控制元件內部填充佈局,而margin意為“邊緣”,一般指的是控制元件外部距父控制元件的距離,可以結合下面的圖片來理解,如圖3.9所示。
圖3.9 Android 佈局示意圖
圖中序號如表3.1所示。
表3.1 Android佈局示意圖含義表
3.2.1 Android padding屬性用法
下面通過一個例項來看一下這些屬性的用法,首先看一下padding屬性的用法:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#96e25f" android:paddingBottom="80dp" android:paddingLeft="20dp" android:paddingRight="60dp" android:paddingTop="40dp" android:text="Hello World!" /> </LinearLayout>
為TextView控制元件添加了四個相關的padding屬性,並設定了不同的屬性值,為了方便觀察還為用來演示的TextView控制元件添加了背景色(設定了background屬性),檢視Android Studio的預覽視窗即可實時檢視效果圖,如圖3.10所示。
圖3.10 Android Padding屬性示意圖
可以看出,和設定屬性值一致,左上右下四個方向的padding值依次變大。
3.2.2 Android margin屬性用法
下面看一下margin屬性的用法:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="30dp" android:background="#96e25f" android:paddingBottom="80dp" android:paddingLeft="20dp" android:paddingRight="60dp" android:paddingTop="40dp" android:text="Hello World!" /> </LinearLayout>
由於LinearLayout中控制元件預設在左上角顯示,所以這裡添加了兩個margin屬性,分別是layout_marginLeft(距左邊界的距離)和layout_marginTop(距上邊界的距離),效果如圖3.11所示。
圖3.11 Android Margin屬性示意圖一
修改程式碼如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="bottom|right" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="30dp" android:layout_marginRight="10dp" android:background="#96e25f" android:paddingBottom="80dp" android:paddingLeft="20dp" android:paddingRight="60dp" android:paddingTop="40dp" android:text="Hello World!" /> </LinearLayout>
為了檢視layout_marginBottom(距離底部邊界)和layout_marginRight(距離右部邊界)的效果,這裡為LinearLayout添加了gravity屬性並設定其值為bottom|right(控制元件將置於右下角),再次檢視預覽視窗,如圖3.12所示。
圖3.12 Android Margin屬性示意圖二
可以看出TextView位於右下角,距離其父佈局邊界底部邊界30dp,距離父佈局右邊邊界10dp。
當然除了上面的指定具體“上下左右”邊界的值,還提供了padding和layout_margin屬性,這時“上下左右”都是相同的值了,下面通過一個例項看一下這兩個屬性的效果:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="40dp"
android:background="#96e25f"
android:padding="40dp"
android:text="TextView1" />
</LinearLayout>
為TextView添加了padding屬性為40dp,這時候TextView的“上下左右”內間距相同,都為40dp;為TextView添加了layout_margin屬性並設定了其值為40dp,這時距左邊距40dp,距上邊距40dp,效果如圖3.13所示。
圖3.13 Android Margin屬性示意圖三
可以看出,此時TextView控制元件距離模擬器的上邊界和左邊界的距離都相同了,且TextView裡的文字位於TextView正中了。
再次修改下程式碼為:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom|right"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="40dp"
android:background="#96e25f"
android:padding="40dp"
android:text="TextView1" />
</LinearLayout>
為LinearLayout添加了gravity屬性其值為bottom|right(右下),這時顯示效果如圖3.14所示。
圖3.14 Android Margin屬性示意圖四
可以看出,此時TextView距離模擬器底邊界和右邊界距離相同了。
如果你喜歡作者的文章,還可以購買他的書(京東自營):