Добавить прогресс в нижней части списка

Я создаю простой список с бесконечным эффектом прокрутки. Пока я загружаю новые данные, я хочу отобразить неопределенный прогресс в нижней части списка (например, приложение gmail).

Существует 2 решения

  • Добавьте индикатор прогресса как элемент моего списка, но мне не нравится это решение
  • Добавьте панель прогресса внизу списка и покажите / скройте ее.

Это даст что-то подобное

<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> 

Но индикатор прогресса не отображается, когда мой список длиннее, чем размер моего экрана (другими словами, когда мне приходится швырять).

Используйте вместо этого свойListView. AddFooterView (поместите свой ProgressBar View)

Чтобы уточнить, вот как вы это делаете:

A. Создайте XML-файл макета, назовите его как 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. В своей деятельности,

 View mProgressBarFooter = ((LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)) .inflate(R.layout.progress_bar_footer, null, false); 

C. Используйте его.

 listView.addFooterView(mProgressBarFooter); //or listView.removeFooterView(mProgressBarFooter); 

Кредит идет на страницу Джона Мозеса .