爲ListView設置一個footerView,佈局爲一個ProgressBar和TextView.
監聽ListView的滑動事件,當滑動狀態爲OnScrollListener.SCROLL_STATE_IDLE(剛滑動完,停止滑動) ,並且當前沒有加載(isLoading爲false)時, 顯示footerView中的佈局,然後異步加載數據requestNews(),拿到網絡數據後,隱藏footerView的佈局.
pullUpfooterView = LayoutInflater.from(mContext).inflate(R.layout.footer_pull_up, null);
TextView footerTV = (TextView) pullUpfooterView.findViewById(R.id.tv_pull_up_footer);
footerTV.setText(getResources().getString(R.string.loading));
newsListView.addFooterView(pullUpfooterView);
pullUpfooterView.setVisibility(View.GONE);
// 滑動到底部自動刷新
newsListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (!isLoading && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
if (view.getLastVisiblePosition() == view.getCount() - 1) {
isLoading = true;
pullUpfooterView.setVisibility(View.VISIBLE);
requestNews();
}
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
}
});