使用RelativeLayout重叠兄弟视图

时间:2015-09-02 18:12:32

标签: android android-layout android-xml

我的应用程序顶部有一个RelativeLayout。在RelativeLayout下面,我有一个ViewPager。

要以有意义的方式解释这一点,想象一下屏幕的高度是700像素。 RelativeLayout高约200像素。

我希望RelativeLayout绝对位于应用程序的顶部,以便ViewPager位于其后面。然后,我想在ViewPager中添加一个200像素paddingTop,以便它显示在RelativeLayout下。

这是我现在的布局(显然不起作用):

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        ...

    </RelativeLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</LinearLayout>

我在header

下加载了包含一些数据的ListView
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

我该怎么做?

2 个答案:

答案 0 :(得分:0)

尝试将linearlayout更改为framelayout。这将允许视图放在彼此之上。

然后将pageviewer的代码放在relativelayout上方。这将使得页面浏览器看起来位于relativelayout的后面,因为它首先被渲染,而relativelayout在它上面呈现。 Android将按照声明的顺序呈现视图。

最后,在页面浏览器中添加一个上边距/填充,使其看起来位于relativelayout下方。

答案 1 :(得分:0)

以下是您可以做的事情:

  • 使用RelativeLayout而不是LinearLayout作为根。
  • 将ViewPager(寻呼机)视图移至子RelativeLayout(标题)的顶部

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:paddingTop="200px"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />            
        <RelativeLayout
            android:id="@+id/header"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </RelativeLayout>
    </RelativeLayout>