在列表视图的底部添加进度条

时间:2013-06-13 20:34:02

标签: android listview progress-bar infinite-scroll

我正在创建一个带有无限滚动效果的简单列表视图。 当我下载新数据时,我想在listview底部显示一个不确定的进度条(如gmail app)。

有2个解决方案

  • 将进度条添加为listview的项目,但我不喜欢此解决方案
  • 在列表视图底部添加进度条并显示/隐藏

它会给出类似的东西

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

但是当我的列表长度超过我的屏幕大小时(换句话说,当我需要scoll)时,不会显示进度条。

2 个答案:

答案 0 :(得分:7)

使用yourListView。addFooterView(把你的ProgressBar视图)

答案 1 :(得分:3)

详细说明,请按照以下方式进行:

一个。创建布局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);

℃。用它。

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

归功于此John Moses' page