區別在於:
android:gravity 用於設置組件本身裏面內容或者子控件的對齊方式,比如Button裏面的文字,如果android:gravity="left",那麼文字文字就會靠左顯示;
android:layout_gravity 用於設置組件在layout容器中對齊方式,比如設置Button的android:layout_gravity="right",則button會在layout容器右邊顯示;
這裏很好區別,android:gravity不帶layout,是設置內容或子控件的對齊方式,android:layout_gravity帶有layout,是用來設置在layout容器中的對齊方式。
另外,設置android:layout_gravity爲left、right、top、bottom時,會受到layout容器orientation排列方式影響。
例如LinearLayout的排列方式爲vertical垂直方式時,那麼,子控件只能設置android:layout_gravity爲left、right纔有效果
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="111dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="left"
android:text="Button" />
</LinearLayout>
如果LinearLayout的排列方式爲horizontal時,那麼,子控件只能設置android:layout_gravity爲top、bottom纔有效果
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_gravity="bottom"
android:text="Button" />
</LinearLayout>