看到了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
相关文章:
高防服务器如何保障网站安全无虞?
如何配置WinSCP新建站点的密钥验证步骤?
建站之星24小时客服电话如何获取?
寿县云建站:智能SEO优化与多行业模板快速上线指南
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
高性能网站服务器部署指南:稳定运行与安全配置优化方案
IOS倒计时设置UIButton标题title的抖动问题
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何在宝塔面板创建新站点?
建站之星在线版空间:自助建站+智能模板一键生成方案
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
济南网站制作的价格,历城一职专官方网站?
制作网站的基本流程,设计网站的软件是什么?
建站主机选哪家性价比最高?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何通过多用户协作模板快速搭建高效企业网站?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
如何访问已购建站主机并解决登录问题?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
建站主机选择指南:服务器配置与SEO优化实战技巧
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
网站专业制作公司有哪些,做一个公司网站要多少钱?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何快速搭建高效香港服务器网站?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
建站之星2.7模板:企业网站建设与h5定制设计专题
如何通过服务器快速搭建网站?完整步骤解析
哈尔滨网站建设策划,哈尔滨电工证查询网站?
如何通过VPS搭建网站快速盈利?
如何在香港免费服务器上快速搭建网站?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
建站主机如何选?高性价比方案全解析
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
网站按钮制作软件,如何实现网页中按钮的自动点击?
长沙企业网站制作哪家好,长沙水业集团官方网站?
建站主机数据库如何配置才能提升网站性能?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
建站之星如何修改网站生成路径?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
重庆市网站制作公司,重庆招聘网站哪个好?
建站之星2.7模板快速切换与批量管理功能操作指南
建站VPS能否同时实现高效与安全翻墙?
大型企业网站制作流程,做网站需要注册公司吗?
建站之星代理费用多少?最新价格详情介绍
香港服务器WordPress建站指南:SEO优化与高效部署策略
定制建站哪家更专业可靠?推荐榜单揭晓
建站之星展会模版如何一键下载生成?
*请认真填写需求信息,我们会在24小时内与您取得联系。