I'm creating a simple listview with an endless scroll effect. While I'm downloading new data I want to display an indeterminate progressbar at the bottom of the listview (like gmail app).
There is 2 solutions
It would give something like that
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ListView
android:id="@+id/List_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ProgressBar
android:id="@+id/trobber"
android:layout_below="@+id/List_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:indeterminate="true" >
</ProgressBar>
</RelativeLayout>
But the progressbar is not displayed when my list is longuer than the size of my screen (in other words when I have to scoll).
use instead yourListView.addFooterView(put your ProgressBar View)
To be elaborated, here's how you do it:
A. Create a layout xml file, name it as progress_bar_footer.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_gravity="center"
android:indeterminateTint="@android:color/holo_green_light"
android:id="@+id/progressBar5"/>
</LinearLayout>
B. In your activity,
View mProgressBarFooter = ((LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(R.layout.progress_bar_footer, null, false);
C. Use it.
listView.addFooterView(mProgressBarFooter); //or
listView.removeFooterView(mProgressBarFooter);
Credit goes to this John Moses' page.
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