我以前使用的是API 19,而我的许多片段都使用了SwipeRefreshLayout
。以前第一次加载内容时,我正在使用setRefreshing(true);
并能够加载内容,并且工作正常。
我注意到在Android 5.0中,Google使用的是循环进度 View 。现在,当我调用setRefreshing(true);
时,它根本没有任何作用。无论如何,可以通过编程方式显示新的微调器吗?我已经深入研究了这一点,但是无法以编程方式显示出来。我已阅读以下内容:
http://developer.android.com/tools/support-library/index.html
https://yassirh.com/2014/05/how-to-use-swiperefreshlayout-the-right-way/
SwipeRefreshLayout doesn't show any indicator of refreshing
基本上,它没有显示第一次尝试刷新的迹象。
最佳答案
而不是直接设置
getSwipeRefreshLayout().setRefreshing(true);
您可以在UI线程上延迟它,以备后用
getSwipeRefreshLayout().post(new Runnable() {
@Override public void run() {
getSwipeRefreshLayout().setRefreshing(true);
}
});
这对我来说非常适合以
onCreateView
开始加载,如果也以LoaderManager.LoaderCallbacks
完成加载。我还没有看到进度条意外粘住(因为数据加载太快了),但是如果您怀疑加载可能返回得太早(错误?),值得对进行相同的发布
getSwipeRefreshLayout().setRefreshing(false);
这样,两个
post
肯定会一个接一个地出现,从而导致绝对隐藏的进度 View 。关于android - API 21中的SwipeRefreshLayout,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26601175/