android:layout_gravity与android:gravity:(排列方式)
第一个是,设置的控件在父控件中的位置,是相对父控件而言的。如,Button中设置android:layout_gravity="left",表示:Button控件靠近它父控件的左边界。
第二个是,设置控件内部的元素位置,即相对自身而言。如,Button中设置android:gravity="left",并且android:text="按钮控件",表示:text的值在Button的左边界处。
这两个属性有点类似html中padding和margin之间的区别。
以下摘自 http://blog.youkuaiyun.com/shakespeare001/article/details/7843460
特殊情况
当我们采用LinearLayout布局时,有以下特殊情况需要我们注意:
(1)当 android:orientation="vertical" (垂直方向,默认)时, android:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
(2)当 android:orientation="horizontal"(水平方向) 时, android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
下面以一个例子说明:(本例来源于:http://blog.youkuaiyun.com/dekunchenivan/article/details/6718678)
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="100dip"
- android:layout_height="100dip"
- android:layout_gravity="bottom|center_horizontal"
- android:gravity="center|bottom"
- android:background="#00FF00"
- android:text="@string/textview"
- />
- <Button
- android:layout_width="100dip"
- android:layout_height="100dip"
- android:layout_gravity="bottom|left"
- android:gravity="left|top"
- android:background="#FF0000"
- android:text="@string/button"
- />
- </LinearLayout>