8.3 布局属性

视图标签有一个专门用于布局的属性,这些属性都以“layout_”开头。在前面的章节已经使用过很多这类的属性,例如,设置视图宽度和高度的android:layout_width和android:layout_height属性;在相对布局中设置视图相对位置的android:layout_toLeftOf、android:layout_toRightOf属性;设置视图在水平或垂直方向所占比例的android:layout_weight属性。但还有很多布局属性未涉及到,本节将介绍一些常用的布局属性。

1.将视图放在父视图的中心

将视图置于中心位置的方法很多,但使用如下3个属性更直接。

android:layout_centerHorizontal:将当前视图置为父视图水平方向中心的位置。

android:layout_centerVertical:将当前视图置为父视图垂直方向中心的位置。

android:layout_centerInParent:将当前视图置为父视图水平和垂直方向中心的位置。

这3个属性都是Boolean类型,所以属性值只能是“true”或“false”,而且必须在相对布局(RelativeLayout)中使用。例如,下面的代码将TextView置为RelativeLayout的中心。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:layout_width="match_parent"

  android:layout_height="match_parent">

  <TextView

    android:id="@+id/textView1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_centerInParent="true"

    android:text="@string/hello_world"/>

</RelativeLayout>

2.视图的外围空间

android:layout_margin属性可以设置视图在上、下、左、右4个方向的外围空间。如果视图在这4个方向上有其他的视图,这个空间就是当前视图到另一个视图的距离,否则是当前视图到父视图边缘的距离。如果想单独设置这4个方向的外围距离,可以使用如下4个属性。

android:layout_marginLeft:设置视图左边缘的外围控件距离。

android:layout_marginRight:设置视图右边缘的外围控件距离。

android:layout_marginTop:设置视图上边缘的外围控件距离。

android:layout_marginBottom:设置视图下边缘的外围控件距离。

上述5个属性在设置时必须指定单位(px、dp、sp等),例如,android:layout_marginBottom="20dp"。关于长度和字体的单位将在资源部分详细介绍。