向上滑动以使用LoaderManager / CursorAdapter,ContentProvider和Service加载

时间:2014-12-24 08:16:12

标签: android listview android-listview swiperefreshlayout

我试着跟随Virgil Dobjanschis'我的应用程序中的Designpattern。到目前为止一切正常,我可以将ContentProvider,IntentService与ListView耦合。

另外我使用SwipeRefreshLayout让用户向下滑动以从我的REST服务手动加载新数据(并存储在本地数据库中)。

但我也希望让用户向上滑动以从REST服务加载一些旧数据。我对这一点感到困惑:如何使用带有LoaderManager的ListView来向上滑动加载?

是否可以通过检查游标的结果在onLoadFinished()方法中执行此操作?或使用SwipeRefreshLayout来收听Swipeup和SwipeDown事件?现在我只发现可以收听向下滑动的事件。

2 个答案:

答案 0 :(得分:1)

你想要的可能就是所谓的"无限" /"懒惰负载"滚动列表。当用户到达列表末尾时,您应该从api中检索更多项目。 here 是如何实现它的示例。

答案 1 :(得分:0)

当用户位于列表末尾时,您必须执行REST调用。

有两种方法可以了解用户是否在最后。

一种方法是使用ScrollView回调。它们不是专门为ListView编写的。

另一种方法是使用Adapter的{​​{1}}功能。当用户向下滚动时,getView将逐个调用项目的位置。当该位置是最后一个项目时,您可以启动getView来执行其操作。

您必须确保只启动一次IntentService。你可以有一面旗帜。