关键是为lv添加头和尾部
lv.addHeaderView(button);
lv.addFooterView(btn);
设置监听
lv.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 改变:
switch (scrollState) {
case SCROLL_STATE_IDLE:
// 停止后看是否是最后一项
int itemsLastIndex = adapter.getCount() - 1; // 数据集最后一项的索引
int lastIndex = itemsLastIndex + 2;
// 显示的最后一项是不是 加载数据的最后一项这里最后一项因为是加了footer
// 所以需要加1,如果添加了head和foot需要+2
if (lv.getLastVisiblePosition() == lastIndex) {
Toast.makeText(MainActivity.this, "到最后了", 0).show();
loadMore();
}
if (lv.getFirstVisiblePosition() == 00) {
Toast.makeText(MainActivity.this, "到最前端了", 0).show();
}
break;
default:
break;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
});
在loadrmore里边
protected void loadMore() {
// 如果每次加10条
if (adapter.getCount() + 10 < all) {
// 添加是10条数据
// 刷新adapter
} else {
// 添加是剩余数据
// 刷新adapter
}
}