您可以在这里找到我的代码:
How to correctly build table with data using onPostExecute and ListView
当ListView滚动到底部时,我需要从服务器加载数据。我试图在Stackoverflow上寻找解决方案,但这对我没有帮助。
另外,如果不难,我想知道它是如何工作的。
谢谢大家
最佳答案
您有2个解决方案:
1)使用OnScrollListener
您必须具有一个扩展ListView并实现OnScrollListener的类。
初始化视图时,将其设置为滚动侦听器: setOnScrollListener(this);
实现方法onScroll
。当您使用参数firstVisibleItem,visibleItemCount和totalItemCount滚动时,将调用它。
当firstVisibleItem+visibleItemCount==totalItemCount
到达列表的底部时,您可以再次调用AsyncTask来加载下一个项目。
2)使用自定义适配器
在必须覆盖的方法getView
中,您可以访问要渲染的项目的位置,即即将在屏幕上可见。
假设您将商品存储在List items
中,并且在position == items.size()-1
到达列表底部时就知道了。然后,您可以调用AsyncTask。
警告
请谨慎使用这两种解决方案,如果列表中的所有项目都适合屏幕,则可能会无缘无故地频繁调用AsyncTask。在开始之前,您必须对此进行必要的检查。