Agnes
Agnes

Reputation: 43

let scrollview fill out whole screen except for height of relative layout at the bottom of the screen

I'm stuck on how to fill the whole screen with a top layout except for the space needed for a bottom layout. I'm using relative layouts to place the layouts as needed, but I want my top view to take up all space except the space needed for my bottom view (the top view height will change depending on user input). See xml below. Right now, my top view will only take up as much space as the linearlayout inside the scrollview needs + the space that myTopButton takes up. XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/bg"
        android:paddingBottom="10dip"
        android:focusable="true"
        android:focusableInTouchMode="true">
   <RelativeLayout android:id="@+id/topLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="80dip"
        android:layout_alignParentTop="true">
     <ScrollView android:id="@+id/myscroll"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginBottom="65dip"
        android:paddingRight="2dip"
        android:paddingLeft="6dip"
        android:fillViewport="true">
        <LinearLayout style="@style/LinearLayoutInner"
        android:orientation="vertical">
        </LinearLayout> 
    </ScrollView>
    <LinearLayout android:orientation="horizontal"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true">
            <Button android:id="@+id/search"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
                android:layout_marginBottom="10dip"
                android:text="@string/search_viewdoses"/>
    </LinearLayout>
   </RelativeLayout>
   <RelativeLayout android:id="@+id/bottomLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="-60dip"
        android:layout_alignParentBottom="true">
            <TextView android:id="@+id/myText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="@string/mytext"></TextView>
            <EditText android:id="@+id/myEdit" 
                android:layout_width="80dip"
                android:layout_height="50dip"
            android:layout_alignParentBottom="true"
            android:layout_toRightOf="@+id/myText"
            android:singleLine="true"
            android:inputType="numberDecimal"></EditText>
            <Button android:id="@+id/save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="10dip"
                android:text="@string/mybuttontext"/>
    </RelativeLayout>
</RelativeLayout>

SCREEN NOW: enter image description here

SCREEN WANTED: enter image description here

Upvotes: 2

Views: 5322

Answers (3)

keithmaxx
keithmaxx

Reputation: 649

In the layout tag

   <RelativeLayout android:id="@+id/topLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="80dip"
    android:layout_alignParentTop="true">

just remove android:layout_marginBottom="80dip" and you should be ready to go. It's the one producing that ugly, unwanted space at the bottom of your top section.

Upvotes: 1

Maria Neumayer
Maria Neumayer

Reputation: 3357

Just remove the bottom margin from topLayout and add android:layout_above="@+d/bottomLayout" to it. You have to define the bottomLayout before topLayout in your xml though. I think you should also remove the top margin from your bottomLayout.

Same goes for the actual scrollView and the button.

Upvotes: 4

VanessaBR
VanessaBR

Reputation: 128

Try putting android:layout_weight="1" on the ScrollView.

Upvotes: 1

Related Questions