我创建了这些视图
<View
android:id="@+id/a"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@color/opaque_red" />
<View
android:id="@+id/b"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignBottom="@id/a"
android:layout_toRightOf="@id/a"
android:background="@color/opaque_red" />
<View
android:id="@+id/c"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignBottom="@id/a"
android:layout_toLeftOf="@id/a"
android:background="@color/opaque_red" />
我该如何与此对齐?
我不能使用其他布局来包装这三个视图,因为我将使用OnTouchListener
移动a
视图,位置计算将基于a
。如果用其他布局换行,计算就很困难。
答案 0 :(得分:0)
基本上
margin = ((a.height - b.height) / 2)
另一种方法是将相对布局设置为wrap_content或a的高度,并将b和c对齐到垂直中心,但是你说你不想要它。
答案 1 :(得分:0)
将父布局的高度设置为wrap_content,然后将子项放在中心位置:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/a"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerInParent="true"
android:background="@android:color/holo_green_light" />
<View
android:id="@+id/b"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/a"
android:background="@android:color/darker_gray" />
<View
android:id="@+id/c"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/a"
android:background="@android:color/darker_gray" />
</RelativeLayout>