I want to make screen with TextView on top (title) a ListView in the middle and buttons on the bottom. How to place ListView that will fill entire space between top TextView and bottom Buttons and be able to scroll its content ?
Now, when my list grows, it pushes bottom button outside the screen.
I have:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button android:id="@+id/button1"
android:layout_height="wrap_content"
android:text="Button"
android:layout_width="wrap_content"
/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:layout_alignParentBottom="true"
/>
<ListView android:id="@+id/lvLocations"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView android:layout_height="0dip"
android:layout_width="fill_parent"
android:layout_weight="1"
/>
<Button android:text="LayerDrawable"
android:id="@+id/button5"
android:textSize="15dp"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:background="@drawable/layer_drawable"
/>
</LinearLayout>
The last TextView
is used to make a gap and move Button
to a bottom.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/title"
android:text="arg0"
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" android:textStyle="bold"/>
</LinearLayout>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/prevButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Previous"
android:layout_weight="1"/>
<Button
android:id="@+id/nextButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Next"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
This is exactly how I have mine set up, and it works great.
Use a LinearLayout
. Set the layout_weight="1"
to your ListView
with layout_height="fill_parent"
. Remove weight of other elements.
<ListView android:id="@+id/lvLocations"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
></ListView>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With