Android:在页眉和页脚之间居中显示滚动视图

时间:2016-03-15 14:37:58

标签: android layout scrollview relativelayout

我正在尝试将ScrollView置于页眉和页脚之间。具体来说,我有一个必须位于顶部的ImageView,一个位于底部的RelativeView和一个位于两者之间的ScrollView。当ScrollView的内容不大于页脚和页眉之间的空间时,我希望它垂直居中,如下图所示。我当前的尝试将scrollview放在正确的位置,但当内容小于可用空间时,它不会垂直居中。

Layout Pic

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:acg="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:id="@+id/preloginLogo"
    android:layout_width="350dp"
    android:layout_height="130dp"
    android:src="@drawable/logo"
    android:layout_centerHorizontal="true"
    android:layout_alignParentTop="true"/>

<ScrollView
    android:layout_width="@dimen/prelogin_main_content_width"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/preloginLogo"
    android:layout_above="@+id/preloginTertiaryLinks">

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

    </RelativeLayout>
</ScrollView>

<RelativeLayout
    android:id="@+id/preloginTertiaryLinks"
    android:layout_width="match_parent"
    android:layout_height="96dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:paddingTop="5dp">

    <View
        android:layout_width="match_parent"
        android:layout_height="1dip"
        android:background="@color/lt_gray"
        android:layout_centerVertical="true"
        android:layout_alignParentTop="true"/>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">

        <Button
            android:id="@+id/prelogin_guestButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Footer"/>
    </LinearLayout>
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

您可以在顶部和底部为ScrollView填充。

<ScrollView
    android:layout_width="@dimen/prelogin_main_content_width"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/preloginLogo"
    android:layout_paddingTop="12dp"
    android:layout_paddingBottom="12dp"
    android:layout_above="@+id/preloginTertiaryLinks">

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

答案 1 :(得分:1)

这个怎么样:

1:失去上面和下面

2:设置边距,使页眉和页脚不被覆盖。

 <ScrollView
        android:layout_width="match_parent"
        android:layout_marginTop="130dp"
        android:layout_marginBottom="96dp"
        android:background="@color/red_danger"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" 
        >

    <RelativeLayout
            android:id="@+id/mainContent"
            android:layout_width="match_parent"
            android:layout_height="100dp">

    </RelativeLayout>
</ScrollView>