看到了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);
}
说明:
方法一和方法二的第一步的目的,都是为了在SwipeRefreshLayout绘制完成之后,再设置刷新状态为true,否则大多数情况下,SwipeRefreshLayout刷新球会不显示。
源码:
package org.raphets.swiperefreshlayoutdemo;
import android.graphics.Color;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private SwipeRefreshLayout mSwipeRefreshLayout;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.srl);
mTextView = (TextView) findViewById(R.id.tv);
//设置刷新球颜色
mSwipeRefreshLayout.setColorSchemeColors(Color.BLUE, Color.RED, Color.YELLOW);
mSwipeRefreshLayout.setProgressBackgroundColorSchemeColor(Color.parseColor("#BBFFFF"));
//手动调用,通知系统去测量
// mSwipeRefreshLayout.measure(0,0);
mSwipeRefreshLayout.setRefreshing(true);
getData();
}
/**
* 模拟网络请求
*/
private void getData() {
new Thread() {
@Override
public void run() {
super.run();
//模拟网络请求
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//在UI线程中更新UI
runOnUiThread(new Runnable() {
@Override
public void run() {
mTextView.setText("首次进入自动刷新");
if (mSwipeRefreshLayout.isRefreshing()) {
mSwipeRefreshLayout.setRefreshing(false);
}
}
});
}
}.start();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
mSwipeRefreshLayout.setRefreshing(true);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# SwipeRefreshLayout
# 自动刷新
# Android SwipeRefreshLayout超详细讲解
# Android 使用SwipeRefreshLayout控件仿抖音做的视频下拉刷新效果
# Android SwipeRefreshLayout仿抖音app静态刷新
# android使用SwipeRefreshLayout实现ListView下拉刷新上拉加载
# android基于SwipeRefreshLayout实现类QQ的侧滑删除
# Android 中SwipeRefreshLayout与ViewPager滑动事件冲突解决方法
# android中SwipeRefresh实现各种上拉
# 下拉刷新示例
# Android使用Item Swipemenulistview实现仿QQ侧滑删除功能
# Android 中 Swipe、Scroll 和 Fling
# 都是
# 实现了
# 完成后
# 首次
# 设置为
# 先来
# 大家多多
# 情况下
# 看到了
# false
# runOnUiThread
# isRefreshing
# span
# measure
# hasFocus
# boolean
# super
# setRefreshing
# mSwipeRefreshLayout
# package
相关文章:
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
XML的“混合内容”是什么 怎么用DTD或XSD定义
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何配置WinSCP新建站点的密钥验证步骤?
实现虚拟支付需哪些建站技术支撑?
平台云上自主建站:模板化设计与智能工具打造高效网站
Swift中switch语句区间和元组模式匹配
北京网站制作的公司有哪些,北京白云观官方网站?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
如何通过WDCP绑定主域名及创建子域名站点?
独立制作一个网站多少钱,建立网站需要花多少钱?
建站10G流量真的够用吗?如何应对访问高峰?
网站代码制作软件有哪些,如何生成自己网站的代码?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
网站制作壁纸教程视频,电脑壁纸网站?
孙琪峥织梦建站教程如何优化数据库安全?
ui设计制作网站有哪些,手机UI设计网址吗?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
如何用搬瓦工VPS快速搭建个人网站?
宝塔Windows建站如何避免显示默认IIS页面?
一键网站制作软件,义乌购一件代发流程?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何在阿里云通过域名搭建网站?
定制建站是什么?如何实现个性化需求?
相册网站制作软件,图片上的网址怎么复制?
如何在云主机上快速搭建网站?
建站主机选虚拟主机还是云服务器更好?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
平台云上自助建站如何快速打造专业网站?
建站之星安装后如何配置SEO及设计样式?
电商网站制作公司有哪些,1688网是什么意思?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
广东企业建站网站优化与SEO营销核心策略指南
建站之星在线客服如何快速接入解答?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
网页设计网站制作软件,microsoft office哪个可以创建网页?
如何在IIS管理器中快速创建并配置网站?
网站制作需要会哪些技术,建立一个网站要花费多少?
如何快速建站并高效导出源代码?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
网站插件制作软件免费下载,网页视频怎么下到本地插件?
高防服务器租用如何选择配置与防御等级?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
建站主机服务器选型指南与性能优化方案解析
建站VPS配置与SEO优化指南:关键词排名提升策略
为什么Go需要go mod文件_Go go mod文件作用说明
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
专业网站建设制作报价,网页设计制作要考什么证?
*请认真填写需求信息,我们会在24小时内与您取得联系。