我花了一個小時試圖添加「加載更多」Button
和不確定ProgressBar
到我的ListView
的頁腳。ListView加載更多按鈕和循環ProgressBar
假想的scinario是這樣的:
當單擊該按鈕,ProgressBar
而AsyncTask
被下載20個項目被顯示。當項目被插入到ListView
時,ProgressBar
被解除,並且Button
再次出現在頁腳中。 我來到了以下解決方案,如果你有更好的解決方案將是很好:
佈局/ progress_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/load_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
/>
並假設你在活動中的以下字段:
private ListView listview;
private Button loadMoreButton;
private ProgressBar progressBar;
在準備好你的列表視圖之後,添加這樣的頁腳(在activity.onCreate()
的末尾):
loadMoreButton = new Button(this);
loadMoreButton.setText("Load More");
progressBar = (ProgressBar) LayoutInflater.from(this).inflate(R.layout.progress_bar, null);
loadMoreButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//downloadItems();
listview.removeFooterView(loadMoreButton);
listview.addFooterView(progressBar);
}
});
數據準備就緒(第一頁或後續頁面)時,請在適配器更新後調用以下內容。
//adapter.notifyDataSetChanged();
listview.removeFooterView(progressBar);
listview.addFooterView(loadMoreButton);
如果您有更好的解決方案,請在答案中分享。
而不是顯示按鈕加載更多,你可以檢查ScrollStateChange氣象用戶的是在底部與否, 如果項目的發現,最後一個索引,那麼你可以顯示在頁腳進步,當加載完全移除它,並顯示您的數據 –
我想讓用戶點擊**加載更多**來減少對服務器的調用次數,以防他一直在滾動。 –