这是一张照片,所以你可以理解我想要的:
我已经在我的相对布局中设置了这个绿色元素,而我想要的是将另一个元素(pic中的黑色元素)放在上面,以便它正好位于绿色元素的中间.
请记住,黑色元素不具有一个恒定的宽度,它的宽度大于绿色.
有一些东西像android:layout_alignLeft和android:layout_alignRight这将是有帮助的,如果我想要对齐左或右,但据我所知,没有android:layout_alignCenter所以我不知道如何做这个事情…
解决方法
正如你所说的,将两个元素放在RelativeLayout中.
然后,将两个元素的“center_horizontal”属性设置为true,然后将绿色元素的“下面”属性设置为黑色元素的ID.
这是完整的例子:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <View android:id="@+id/view1" android:layout_width="100dp" android:layout_height="40dp" android:background="@color/Black" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <View android:id="@+id/view2" android:layout_height="100dp" android:layout_below="@+id/view1" android:background="@color/Green" android:layout_centerHorizontal="true" /> </RelativeLayout>
(“center_vertical”有点可选)
或者在这里,不管其他观点的位置:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <View android:id="@+id/view1" android:layout_width="100dp" android:layout_height="40dp" android:background="@color/Black" android:layout_centerVertical="true" /> <View android:id="@+id/view2" android:layout_width="40dp" android:layout_height="100dp" android:layout_below="@+id/view1" android:layout_alignLeft="@+id/view1" android:layout_alignRight="@+id/view1" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="@color/Green" /> </RelativeLayout>
(在这种情况下,边距将定义第二个视图宽度)
这是最终结果: