我试图在RelativeLayout中对齐三个视图,使得所有三个视图都垂直对齐。然后,我想查看" A"要在RelativeLayout内左对齐,查看" C"在右边,查看" B"介于" A"和" C"。 XML声明如下所示:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ViewA
android:id="@+id/viewA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
... />
<ViewC
android:id="@+id/viewC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
... />
<ViewB
android:id="@+id/viewB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/viewC"
android:layout_toRightOf="@+id/viewA"
... />
</RelativeLayout>
这在Android 4.2.2及更高版本上完全正常,但不在下面(SDK 16)。似乎是android:layout_centerInParent会覆盖android:layout_alignParentLeft / android:layout_alignParentRight,因为它们都是&#34; A&#34;和&#34; C&#34;出现在布局的中间,而不是分别对齐左右。有没有办法在RelativeLayout中使用不同的方式设置垂直对齐?
答案 0 :(得分:1)
为什么在想要使其居中垂直时使用android:layout_centerInParent="true"
。请改用android:layout_centerVertical="true"
。
答案 1 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textViewA"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:text="A"/>
<TextView
android:id="@+id/textViewB"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:text="B"/>
<TextView
android:id="@+id/textViewC"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:text="C"/>
</LinearLayout>
答案 2 :(得分:0)
使你的布局像这样
<?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"
android:gravity="center_vertical" >
<View
android:id="@+id/viewA"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:background="#ff00" />
<View
android:id="@+id/viewC"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentRight="true"
android:background="#00ff00" />
<View
android:id="@+id/viewB"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerHorizontal="true"
android:background="#0000ff" />
</RelativeLayout>