为Listview 添加 footview: 当滑动列表到底端时 添加即可;
eg:
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
if (totalItemCount - dobListController.getFooterViewsCount() == 0) {
return;
}
this.firstVisibleItem = firstVisibleItem;
this.visibleItemCount = visibleItemCount;
this.totalItemCount = totalItemCount;
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (dobListController.getOnScrollListener() != null) {
dobListController.getOnScrollListener().onScrollStateChanged(view,scrollState);
}
if(scrollState == SCROLL_STATE_IDLE){
int lastVisibleItem = firstVisibleItem + visibleItemCount;
boolean isLoading = dobListController.isLoading();
boolean isLastItem = lastVisibleItem == totalItemCount;
OnLoadMoreListener onLoadMoreListener = dobListController.getOnLoadMoreListener();
if (!isLoading) {
if (visibleItemCount == totalItemCount) {
loadMore(onLoadMoreListener, totalItemCount);
return;
}
if (dobListController.isThereMaxItemsCount()
&& totalItemCount >= dobListController.getMaxItemsCount()) {
dobListController.setFooterLoadViewVisibility(false);
return;
} else if (totalItemCount == 0) {
dobListController.setFooterLoadViewVisibility(false);
return;
}
if (isLastItem) {
loadMore(onLoadMoreListener, totalItemCount);
}
}
if (dobListController.getOnScrollListener() != null) {
dobListController.getOnScrollListener().onScroll(view,
firstVisibleItem, visibleItemCount, totalItemCount);
}
}
}
private void loadMore(OnLoadMoreListener onLoadMoreListener,int totalItemCount) {
if (this.lastTotalItemCount < totalItemCount) {
this.lastTotalItemCount = totalItemCount;
dobListController.setLoading(true);
dobListController.setFooterLoadViewVisibility(true);
if (onLoadMoreListener != null) {
onLoadMoreListener.onLoadMore(totalItemCount);
}
}
}
code : http://download.csdn.net/detail/xidianluke/7703539