两个Relativelayout垂直显示

时间:2012-09-18 15:38:04

标签: java android layout user-interface

这是XML代码:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent" android:layout_width="fill_parent">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:text="Welcome"
        android:layout_centerInParent="true" android:textSize="20sp"/>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:text="Welcome"
        android:layout_centerInParent="true" android:textSize="20sp"/>
    </RelativeLayout>
</RelativeLayout>

这不是真实的场景(UI设计不是那个代码,但我是为了简化而提出它)。 我从这段代码中得到的是TextViews将相对显示(以垂直方式)。喜欢:

                     Welcome
                     Welcome

但输出如下:

                     Welcome

就像,它们嵌套在一起,堆叠在一起。 我将宽度布局设为填充父级,那么为什么其他布局不会下降?它会覆盖第一个相对布局。

我必须有2个布局,所以请不要建议我只创建一个布局。

谢谢。

2 个答案:

答案 0 :(得分:2)

您需要设置布局的关系。

尝试我在下面做的修改。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent" android:layout_width="fill_parent">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:id="@+id/top_rel>
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:text="Welcome"
        android:layout_centerInParent="true" android:textSize="20sp"/>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_below="@id/top_rel>
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:text="Welcome"
        android:layout_centerInParent="true" android:textSize="20sp"/>
    </RelativeLayout>
</RelativeLayout>

我给出了android:id="@+id/top_rel"的顶部布局,使其识别更容易。

此外,我已使用android:layout_alignParentTop="true"告诉它在视图的顶部显示。

然后使用RelativeLayout将较低的android:layout_below="@id/top_rel"放在最高的{{1}}之下。

答案 1 :(得分:1)

首先,给出一些与第一个文本视图对应的相对布局的id。然后使用id,为第二个相对布局添加layout_below属性。这样它将显示在第一个文本视图的下方..

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent" android:layout_width="fill_parent">


 <RelativeLayout
        android:id = "@+id/first_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:text="Welcome"
        android:layout_centerInParent="true" android:textSize="20sp"/>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/first_layout">
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:text="Welcome"
        android:layout_centerInParent="true" android:textSize="20sp"/>
    </RelativeLayout>
</RelativeLayout>