1.android:gravity有兩個作用。
一個是設定控件中的文本内容的位置。如下所示,文本中的你好内容居中顯示:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="你好"
android:textSize="20sp"
android:gravity="center_hrizontal"
/>
效果圖
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TUOVTU65kMRpXT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DN4QTMwgzMyITMwQDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
另一個是是對單個View進行位置設定相對于父控件。如下所示
<?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:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="你好"
android:textSize="20sp"
android:gravity="center_horizontal"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="right" //設定下面的兩個Button右對齊
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消" />
</LinearLayout>
</LinearLayout>
效果圖
2.android:layout_gravity的作用是設定子控件相對于父控件的位置,可以設定多個子控件,比如讓上面的例子中的兩個Button按鈕一左一右,就要用android:layout_gravity。
<?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:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="你好"
android:textSize="20sp"
android:gravity="center_horizontal"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:layout_gravity="left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定" />
<Button
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消" />
</LinearLayout>
</LinearLayout>
效果圖
3.特殊情況
當我們采用LinearLayout布局時,有以下特殊情況需要我們注意:
(1)當 android:orientation="vertical" 時, android:layout_gravity隻有水準方向的設定才起作用,垂直方向的設定不起作用。即:left,right,center_horizontal 是生效的。
(2)當 android:orientation="horizontal" 時, android:layout_gravity隻有垂直方向的設定才起作用,水準方向的設定不起作用。即:top,bottom,center_vertical 是生效的。