首先我们要给SwipeRefreshLayout设置一个listener,最好这样设置: SwipeRefreshLayout.setOnRefreshListener(this);
然后让Activity实现onRefresh()方法:
@Override
public void onRefresh() {
//在这里访问网络,获取数据
loadData();
}
在oncreate()方法里打开SwipeRefreshLayout:
SwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
//这行代码并不会触发onRefresh
SwipeRefreshLayout.setRefreshing(true);
//必须手动调用
onRefresh();
}
});
特别注意: SwipeRefreshLayout.setRefreshing(true);这行代码并不会触发onRefresh
在合适的地方关闭SwipeRefreshLayout,也需要这么做:
SwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
//必须这样关闭
SwipeRefreshLayout.setRefreshing(false);
}
});
如果这样就完事,那可不行哦。
通常状况是:在刚打开页面的时候先展示本地缓存的数据,然后再去请求网络数据,请求成功后展示新数据。嗯。