无法在RelativeLayout中定义TextView位置

时间:2013-01-06 15:49:57

标签: android android-layout

当我在RelativeLayout,'textA','textB'和'textC'中声明3个TextView时。 textC应出现在textB下面。但是在运行时,textC显示在不正确的位置(在屏幕的左上角)。 我不知道textC可以使用android:layout_below到textB。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent" >
    <TextView
        android:id="@+id/textA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:text="This is TextA : " />
    <TextView
        android:id="@+id/textB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/textA"
        android:layout_alignBaseline="@id/textA"
        android:text="this is textB" />
    <TextView
        android:id="@+id/textC"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/textB"
        android:text="This is TextC" />
</RelativeLayout>

3 个答案:

答案 0 :(得分:2)

您也可以更改

android:layout_below="@id/textA"

到textC

完整的示例如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent" android:layout_height="match_parent" >
<TextView
    android:id="@+id/textA"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:text="This is TextA : " />
<TextView
    android:id="@+id/textB"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/textA"
    android:layout_alignBaseline="@+id/textA"
    android:text="this is textB" />
<TextView
    android:id="@+id/textC"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textB"
    android:layout_below="@+id/textA"
    android:text="This is TextC" />

答案 1 :(得分:0)

只需对TextView3

进行以下更改即可
 <TextView
    android:id="@+id/textC"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/textB" 
    android:layout_below="@+id/textA"
    android:text="This is TextC" />

答案 2 :(得分:0)

它不能对使用alignBaseline到其他元素的元素使用垂直对齐。然后在这种情况下,在'textB'中将alignBaseline更改为alignTop,就像在代码中一样。

<TextView
    android:id="@+id/textB"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/textA"
    android:layout_alignTop="@id/textA"
    android:text="this is textB" />

使用这种方式,它将支持textB的多行。