您可以在这里找到我的代码:
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。在开始之前,您必须对此进行必要的检查。

07-26 06:26