Reputation: 43
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:
SCREEN WANTED:
Upvotes: 2
Views: 5322
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
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