SwipeRefreshLayout的进度圈圈无法显示的问题
来源:互联网 发布:网络大电影转化率 编辑:程序博客网 时间:2024/04/27 22:24
最近在使用SwipeRefreshLayout时,发现在界面的onResume方法中调用setRefreshing(true) 。
发现,界面上并没有小圈圈进度条。
原来,这时SwipeRefreshLayout并没有 初始化完成,所以调用setRefreshing(true),并不会显示进度条。
更多答案可以参考:https://code.google.com/p/android/issues/detail?id=77712
解决一:
可以在Activity的
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); }
方法中调用setRefreshing(true)。
因为Activity生命周期中,onStart, onResume, onCreate都不是真正visible的时间点,真正的visible时间点是onWindowFocusChanged()函数被执行时。
这个时候SwipeRefreshLayout已经被初始化完成了。
这个时候时可以正常显示进度条圈圈的。
解决二:
自己重写SwipeRefreshLayout。设置一个标记位,当初是化完成了就去调用setRefreshing(true) 。
/** * 自定义SwipeRefreshLayout * Created by wp on 16-3-7. */public class MySwipeRefreshLayout extends SwipeRefreshLayout { public MySwipeRefreshLayout(Context context) { super(context); } public MySwipeRefreshLayout(Context context, AttributeSet attrs) { super(context, attrs); } private boolean mMeasured = false; private boolean mPreMeasureRefreshing = false; @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); if (!mMeasured) { mMeasured = true; setRefreshing(mPreMeasureRefreshing); } } @Override public void setRefreshing(boolean refreshing) { if (mMeasured) { super.setRefreshing(refreshing); } else { mPreMeasureRefreshing = refreshing; } }}
解决三(这个方法没事过,按理说可行):
在View的post方法中,调用setRefreshing(true) 。
因为post方法时View初始化完成后会调用。
注意:这个方法中的 Runnable 是在当前线程执行。(一般为UI线程,因为这个方法一般情况下再UI线程被调用)
所以不需要在使用Handler去更新UI。
swipeToRefreshLayout.post(new Runnable() { @Override public void run() { swipeToRefreshLayout.setRefreshing(refreshing); }});
0 0
- SwipeRefreshLayout的进度圈圈无法显示的问题
- Android问题集(1):SwipeRefreshLayout下拉不显示进度圈
- LoadingProgressBar(类似SwipeRefreshLayout的加载进度指示器)
- Android Process bar的自定义进度条 使用9 patch导致直接无法显示进度的问题
- Android SwipeRefreshLayout的 swipe.setRefreshing(true)无法自动刷新问题
- Android 中SwipeRefreshLayout刷新动画不显示的问题
- 进度圈的显示
- 圈圈的blog开张~~
- 关于圈圈的计算
- 有关圈圈的计算
- TortoiseSVN import visualSVN时没有进度以及图标无法显示的问题(2011年10月29日星期六)
- SwipeRefreshLayout自动刷新的问题
- SwipeRefreshLayout自动刷新的问题
- c# HttpClient上传和下载的进度显示问题
- 【android】解决自定义样式progressbar的进度显示问题
- ProgressBar使用自定义drawable时,进度显示不全的问题
- iOS tableView上刷新显示下载进度的问题
- CDialogBar无法显示的问题
- android休眠唤醒机制-wakelock
- CMS仿站必备工具之ScrapBook火狐插件
- VS2013中添加现有窗体项
- mongodb学习(二)
- 关于SQLSERVER中使用正则表达式的方式
- SwipeRefreshLayout的进度圈圈无法显示的问题
- hbase的并发控制机制
- 实现TCP连接的AT指令
- 基于SSDB的分布式锁
- HDU 1998 奇数阶魔方 (找规律)
- JavaSE_Java反射机制详解(Field,Method) 及 Method.invoke使用方法
- mysql常用函数
- LeakCanary开源项目
- node.js文件图片上传