为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) {
}
});