I am trying to center a ScrollView between a header and footer. Specifically I have a ImageView that has to be at the top, a RelativeView at the bottom and a ScrollView centered between the two. When the content of the ScrollView is not larger than the space between the footer and header, I want it centered vertically like in the image below. My current attempt puts the scrollview in the right place but it will not center itself vertically correctly when the content is smaller than the available space.
<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>