我正在使用我发现的 chrisbanes 的 PullToRefresh ListViewhere https://github.com/chrisbanes/Android-PullToRefresh.
多亏了它的文档,我成功地实现了它。 :)
然而,我现在陷入了这一点。我正在使用 volley 从服务器获取数据。它工作得很好,直到我添加了一个检查以查看是否没有更多数据,然后简单地向用户致敬。
我确实喜欢下面的,
@Override
public void onRefresh(
PullToRefreshBase<ListView> refreshView) {
if (hasMoreData()){
//Call service when pulled to refresh
orderService();
} else{
// Call onRefreshComplete when the list has been refreshed.
toastShort("No more data to load");
orderListAdapter.notifyDataSetChanged();
mPullRefreshListView.onRefreshComplete();
}
}
吐司出现了,但我也继续看到加载中...我的 ListView 下方的消息。我想onRefreshComplete();
应该照顾它,但它没有。
我该怎么做呢?请帮忙。
在敲了我的头近三个小时后,我终于解决了这个问题。这很简单很难。
我所做的是创建一个 Handler 和一个 Runnable 来调用mPullRefreshListView.onRefreshComplete();
一段时间后检查是否mPullRefreshListView
仍然令人耳目一新,然后再次调用该方法,该方法将在下次调用时关闭它。 :)
代码是这样的..
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
if (hasMoreData()) {
// Call service when pulled to refresh
toastShort("Last");
orderService();
} else {
// Call onRefreshComplete when the list has been
// refreshed.
toastShort("No more data to load");
upDatePull(); //this method does the trick
}
}
private void upDatePull() {
// lvOrders.setAdapter(null);
handler = new Handler();
handler.postDelayed(runnable, 1000);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
mPullRefreshListView.onRefreshComplete();
if (mPullRefreshListView.isRefreshing()) {
Logger.d("xxx", "trying to hide refresh");
handler.postDelayed(this, 1000);
}
}
};
致谢这个链接。 http://androidstudio2.blogspot.in/2013/08/tip-7-pulltorefresh-loading.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)