在项目中要求进入Activity时,即出现下拉刷新样式,以提醒用户正在数据正在刷新,但是用swipe.setRefreshing(true)方法却达不到效果,没有作用,经查找需要
swipe.post(new Runnable() {
@Override
public void run() {
if (swipe.isRefreshing()){
swipe.setRefreshing(false);
}
}
});
这样做才会有下拉刷新出现,而无须用户手动下拉操作,然而这样做并没有进入SwipeRefreshLayout的onRefresh()方法,仍需主动调用onRefresh(),方可执行该方法,并且
想要在数据请求完成后,停止刷新样式,调用swipe.setRefreshing(false)是没有作用的,(在由用户操作引发的下拉刷新时起作用),这时候需要
swipe.post(new Runnable() {
@Override
public void run() {
if (swipe.isRefreshing()){
swipe.setRefreshing(false);
}
}
});
这样,才能停止刷新。具体原因有网友分析出是SwipeRefreshLayout在onCreate()中onMeasure()方法,仍未发生作用,所以设置下拉刷新无效。
具体可见:https://www.zhihu.com/question/35422150