android:layout_above="@id/xxx" --将控件置于给定ID控件之上
android:layout_below="@id/xxx" --将控件置于给定ID控件之下
android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐
android:layout_toRightOf="@id/xxx" --将控件的左边缘和给定ID控件的右边缘对齐
android:layout_alignLeft="@id/xxx" --将控件的左边缘和给定ID控件的左边缘对齐
android:layout_alignTop="@id/xxx" --将控件的上边缘和给定ID控件的上边缘对齐
android:layout_alignRight="@id/xxx" --将控件的右边缘和给定ID控件的右边缘对齐
android:layout_alignBottom="@id/xxx" --将控件的底边缘和给定ID控件的底边缘对齐
android:layout_alignParentLeft="true" --将控件的左边缘和父控件的左边缘对齐
android:layout_alignParentTop="true" --将控件的上边缘和父控件的上边缘对齐
android:layout_alignParentRight="true" --将控件的右边缘和父控件的右边缘对齐
android:layout_alignParentBottom="true" --将控件的底边缘和父控件的底边缘对齐
android:layout_centerInParent="true" --将控件置于父控件的中心位置
android:layout_centerHorizontal="true" --将控件置于水平方向的中心位置
android:layout_centerVertical="true" --将控件置于垂直方向的中心位置
"@id/name"和"@+id/name"的区别。 不带加号的表示使用你前面已经定义过的resource id,name就是那个定义过的id。 而带加号的表示这可能是一个新定义的resource id,也就是说,编译器会先在你已经定义过的resource id里面找,如果存在就用那个,如果不存在就新建一个。 按照android的文档说明,建议在所有情况下使用"@+id/name",因为这是安全的。 但是如果你想检查错误,比如有没有错误的使用一个没有定义的resource id,那就使用"@id/name"。 特别是android:layout_alignLeft这种属性应该是引用已存在的anchor,所以感觉用"@id/name"更好。