list.setOnScrollListener(new OnScrollListener() {
//添加滚动条滚到最底部,加载余下的元素
public void onScrollStateChanged(AbsListView view, int scrollState) {
// if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {//此方法可以用,但滚动条滚动到顶端,也触发
// Toast.makeText(TestListScroll.this, "OK", Toast.LENGTH_SHORT).show();
// bindViewData();bindViewData
// }
//此方法正好满足需求:滚动到低端,加载数据
if(view.getLastVisiblePosition() == (view.getCount() -1)){
bindViewData();//加载数据的方法
}
}
//下面的方法,可以实现滚动加载,每滚动一条,则在底端加载一条。
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//滚动加载
//// Toast.makeText(TestListScroll.this, "OK" + firstVisibleItem + "|" + visibleItemCount + "|" + totalItemCount, Toast.LENGTH_SHORT).show();
// int lastItem = firstVisibleItem + visibleItemCount;
//// Toast.makeText(TestListScroll.this, "OK" + listItem.size() + firstVisibleItem + visibleItemCount + lastItem , Toast.LENGTH_SHORT).show();
// if (listItem.size() == lastItem && listItemAdapter.getCount() > 0) {
// start = end;
// end = end + 1;
//
// bindViewData();
// }
}
});
参考地址:
http://yarin.blog.51cto.com/1130898/451497
http://www.cnblogs.com/tinggu/archive/2010/09/09/1822370.html
http://weijianyou706.blog.163.com/blog/static/233334832010211114354743/