实现SwipeRefreshLayout首次进入自动刷新
来源:互联网 发布:信息 互联网 大数据 编辑:程序博客网 时间:2024/06/05 08:01
看到了Android版知乎实现了这种效果,就自己也实现了一下。
先来一张效果图
实现方式:
方法一、
①在onWindowFocusChanged()方法中,设置为刷新状态为true
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); mSwipeRefreshLayout.setRefreshing(true); }
②在获取数据完成后设置刷新状态为false
if (mSwipeRefreshLayout.isRefreshing()) { mSwipeRefreshLayout.setRefreshing(false); }
方法二、
①调用mSwipeRefreshLayout.measure()方法后,设置刷新状态为true
//手动调用,通知系统去测量 mSwipeRefreshLayout.measure(0,0); mSwipeRefreshLayout.setRefreshing(true);
②在获取数据完成后设置刷新状态为false
if (mSwipeRefreshLayout.isRefreshing()) { mSwipeRefreshLayout.setRefreshing(false); }
方法三、
①在view.post(new Runnable)方法中设置刷新状态为true
mSwipeRefreshLayout.post(new Runnable() { @Override public void run() { Log.i("getMeasuredHeight",mSwipeRefreshLayout.getMeasuredHeight()+""); mSwipeRefreshLayout.setRefreshing(true); } });
②在获取数据完成后设置刷新状态为false
if (mSwipeRefreshLayout.isRefreshing()) { mSwipeRefreshLayout.setRefreshing(false); }
方法四、
①使用ViewTreeObserver
ViewTreeObserver obeser=mSwipeRefreshLayout.getViewTreeObserver(); obeser.addOnWindowFocusChangeListener(new ViewTreeObserver.OnWindowFocusChangeListener() { @Override public void onWindowFocusChanged(boolean hasFocus) { mSwipeRefreshLayout.setRefreshing(true); Log.i("11getMeasuredHeight",mSwipeRefreshLayout.getMeasuredHeight()+""); } });
②在获取数据完成后设置刷新状态为false
if (mSwipeRefreshLayout.isRefreshing()) { mSwipeRefreshLayout.setRefreshing(false); }
说明:
每种方法的第一步,都是为了保证SwipeRefreshLayout绘制完成,再调用方法显示刷新球,否则界面比较的复杂的时候,刷新球会不显示。
源码:https://github.com/RaphetS/swiperefreshdemo
0 0
- 实现SwipeRefreshLayout首次进入自动刷新
- SwipeRefreshLayout 首次进入界面自动下拉刷新
- SwipeRefreshLayout自动刷新实现
- SwipeRefreshLayout进入界面自动刷新效果
- SwipeRefreshLayout进入界面后自动显示刷新效果
- SwipeRefreshLayout设置首次进入页面开启动画
- SwipeRefreshLayout 进入页面主动刷新
- SwipeRefreshLayout如何自动刷新
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉自动加载
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉自动加载
- SwipeRefreshLayout实现下拉刷新
- SwipeRefreshLayout 实现下拉刷新
- SwipeRefreshLayout实现下拉刷新
- SwipeRefreshLayout实现下拉刷新
- SwipeRefreshLayout实现下拉刷新
- SwipeRefreshLayout实现下拉刷新
- Android-PullToRefresh实现进入自动刷新
- SwipeRefreshLayout自动刷新的问题
- 浅谈Ajax跨域的解决方案——CORS、JSONP
- java字符串反转
- Ajax使用session但是
- 344. Reverse String
- Leetcode-Two Sum II - Input array is sorted
- 实现SwipeRefreshLayout首次进入自动刷新
- op分析
- JavaScript数据结构-字典
- 漏洞-弱口令介绍与自动攻击示范
- 缓更声明
- 关于RequestParam 的一些使用
- linux 条件测试
- Solr6适配自定义升级版mmseg4j
- Android 事件分发机制源码和实例解析