Volodymyr
Volodymyr

Reputation: 1597

3 layouts - middle is flexible

I need the following thing:

3 layouts:

  1. Header
  2. Content
  3. Footer

Header must be on the top footer must be sticked to the bottom (android:layout_alignParentBottom="true").

But how to make middle to occupy the whole other screen? Thanks.

Upvotes: 3

Views: 656

Answers (4)

itsrajesh4uguys
itsrajesh4uguys

Reputation: 4638

Hi Use the following lines

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:text="Button" >

        <Button
            android:id="@+id/button2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Header" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
       android:layout_above="@+id/linearfooter"
       android:layout_below="@+id/button1"
        android:background="@android:color/darker_gray"
        >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearfooter"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="Button" >

        <Button
            android:id="@+id/button2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="footer" />
    </LinearLayout>

</RelativeLayout>

hope this helps you. Reference Image

Upvotes: 1

Volodymyr
Volodymyr

Reputation: 1597

Finally I've got the next solution:

To the middle layout I added:

  <LinearLayout
      android:id="@+id/linearLayout1"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_above="@id/footer"
      android:layout_below="@id/header"
      android:layout_weight="1">

And it works!

Upvotes: 0

lopez.mikhael
lopez.mikhael

Reputation: 10071

Here is my solution (with android:layout_weight and ScrollView):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="#DDDDDD"
    android:gravity="center"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Header"
        tools:ignore="HardcodedText" />
</LinearLayout>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="3" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Content"
        tools:ignore="HardcodedText" />

</ScrollView>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="#DDDDDD"
    android:gravity="center"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Footer"
        tools:ignore="HardcodedText" />

</LinearLayout></LinearLayout>

And the result picture :

enter image description here

Upvotes: 3

Waza_Be
Waza_Be

Reputation: 39556

Use a height of 0dp and

android:layout_weight

set to 1

Upvotes: 0

Related Questions