Android: Footer in a ListView

10,073

Solution 1

for your scenario i think you need something similar to this.

<RelativeLayout>
    <include android:id="@+id/header" layout="@layout/header" android:layout_width="fill_parent" android:layout_alignParentTop="true" />

    <include android:id="@+id/footer" layout="@layout/footer" android:layout_width="fill_parent" android:layout_alignParentBottom="true" /> 

    <ListView android:layout_below="@id/header" android:layout_above="@id/footer"/> 
</RelativeLayout>

Solution 2

It is working as intended. The footer view will be at the bottom of the list. In case you want to have something static at the bottom of the screen you need to use RelativeLayout with your footer as alignParentBottom and list over the top of it.

Ahh I found another similar question and the answer is also the same :)

Android ListView Footer View not being placed on the bottom of the screen

Share:
10,073
Jay Mayu
Author by

Jay Mayu

I'm iOS / React Native Developer but I also do some Android, HTML5, Laravel and NodeJS. You can follow me at Twitter @mayooresan or connect with me at LinkedIn If you like my answers and posts then probably you will like my blog Mayu's IT Diary

Updated on June 16, 2022

Comments

  • Jay Mayu
    Jay Mayu almost 2 years

    I have a listview as below

    <?xml version="1.0" encoding="UTF-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:background="#E6E7E2">
        <ImageView android:id="@+id/Thumbnail" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:src="@drawable/icon" />
        <TextView android:id="@+id/FilePath" android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:textColor="#E6E7E2"
            />
    </LinearLayout>
    

    and I have the footer as below

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent" android:layout_gravity="bottom">
        <LinearLayout android:layout_width="fill_parent" 
                android:layout_alignParentBottom="true" 
                android:layout_height="wrap_content"
                android:id="@+id/layoutfooterbutton" android:layout_gravity="bottom">
    
                <Button android:layout_weight=".30" android:layout_margin="2dp"
                    android:layout_height="60dp" android:layout_width="100dp"
                    android:textColor="#FFF" android:gravity="bottom|center"
                    android:textSize="12dp" android:id="@+id/ButtonAudio" android:background="@drawable/vid_red"/>
    
                <Button android:layout_weight=".30" android:layout_height="60dp" android:layout_width="100dp"
                    android:gravity="bottom|center" android:background="@drawable/redblank"
                    android:textColor="#E6E7E2" android:id="@+id/ButtonBrowse" android:layout_marginTop="2dp"/>
                <Button android:layout_weight=".30" android:layout_margin="2dp"
                    android:layout_height="60dp" android:layout_width="100dp"
                    android:textColor="#FFF" android:gravity="bottom|center"
                    android:textSize="12dp" android:background="@drawable/reddelete" android:id="@+id/ButtonDelete"/>
    
            </LinearLayout>
    </RelativeLayout>
    

    When I add the footer to the listview using

    View header = getLayoutInflater().inflate(R.layout.header, null);
    View footer = getLayoutInflater().inflate(R.layout.footer, null);
    ListView lv = getListView();
    
    // setting header for the list view
    lv.addHeaderView(header);
    lv.addFooterView(footer);
    setListAdapter(new ArrayAdapter<String>(AudioListActivity.this, R.layout.row_audio,  R.id.label, db_results));
    

    It goes to right below the last listview item. I want the footer to be in the bottom. How can I acheive it??

    PS: Header perfectly sits on the top.

    thanks for your time in advance.

  • PravinCG
    PravinCG almost 13 years
    what did you do and what are you getting now?
  • Jay Mayu
    Jay Mayu almost 13 years
    I changed the footer's top layout as the listview layout, still its same. nothing changed. I want the footer to be fixed in the bottom. Seems can't acheive this via android