Android在滚动结束时dynamic加载列表视图?

我一次从Http服务器加载一个列表视图20, 在Listview结束时,我想从服务器加载下20个数据 ,这个过程将继续,直到数据在服务器结束,我使用扩展BaseAdapter的类填充前20数据,我该怎么办?

这看起来也是一个优雅的解决scheme: http : //benjii.me/2010/08/endless-scrolling-listview-in-android/

它还实现了AbsListView.OnScrollListener ,并在达到当前滚动视图中剩余项目的某个阈值时立即使用AsyncTask加载更多内容。

好吧,我已经看到,这是一个常见的问题,所以我已经做了一个小型库 ,自定义加载更多,并拉动刷新ListView在github ,请检查在这里 ,所有非常详细的解释在库中。

您可以实现一个AbsListView.OnScrollListener ,获取通知,并允许您加载更多的数据。

见例如

 .... ListView.setOnScrollListener(this); .... 

然后看看https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java#L287

或者看看sdk例子中的List9例子。

Heiko Rupp的代码是这个问题的最佳select。 你应该做的唯一的事情是实现onScrollListeneronScroll()只是通过使用代码检查是否有一个列表的末尾

 boolean loadMore = firstVisibleItem + visibleItemCount >= totalItemCount-1; 

如果真的加载您的数据以正常的方式..

thaks Heiko Rupp这个片段:)

这是我用来加载更多的数据在列表视图的末尾

  listview.setOnScrollListener(new OnScrollListener(){ @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //Algorithm to check if the last item is visible or not final int lastItem = firstVisibleItem + visibleItemCount; if(lastItem == totalItemCount){ // you have reached end of list, load more data } } @Override public void onScrollStateChanged(AbsListView view,int scrollState) { //blank, not using this } });