2013-06-13 45 views
6

Tôi đang tạo một chế độ xem danh sách đơn giản với hiệu ứng cuộn vô tận. Trong khi tôi tải xuống dữ liệu mới, tôi muốn hiển thị thanh tiến trình không xác định ở cuối danh sách xem (như ứng dụng gmail).Thêm thanh tiến trình ở cuối danh sách xem

Có 2 giải pháp

  • Thêm progressbar như một mục của listview của tôi, nhưng tôi không thích giải pháp này
  • Thêm progressbar ở dưới cùng của listview và chương trình của tôi/giấu nó

Nó sẽ cung cấp cho một cái gì đó như thế

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

Nhưng sự tiến bộ thanh không được hiển thị khi danh sách của tôi dài hơn kích thước màn hình của tôi (nói cách khác khi tôi phải quét).

Trả lời

7

sử dụng thay choListView của bạn. addFooterView (đặt ProgressBar Xem bạn)

+0

Cảm ơn bạn, bạn đã tiết kiệm rất nhiều thời gian! – loonis

+0

Vui mừng được giúp bạn – OWZY

+3

Sau khi thêm FooterView vào listview của tôi Tôi nhận được ngoại lệ lớp học khi tôi cố gắng thiết lập một bộ chuyển đổi cho listView ?? – codeRider

3

Để được xây dựng, dưới đây là cách bạn làm điều đó:

A. Tạo một file xml bố trí, tên nó như 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. Trong của bạn hoạt động,

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

C. Sử dụng nó.

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

Tín dụng đi kèm số John Moses' page này.

+0

hoàn hảo ........ –

Các vấn đề liên quan