Android实现SwipeRefreshLayout首次进入自动刷新
发布时间 - 2026-01-10 22:15:18 点击率:次看到了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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
js代码实现下拉菜单【推荐】
如何彻底删除建站之星生成的Banner?
Laravel如何配置任务调度?(Cron Job示例)
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
Swift中swift中的switch 语句
高性能网站服务器配置指南:安全稳定与高效建站核心方案
佛山网站制作系统,佛山企业变更地址网上办理步骤?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
如何做网站制作流程,*游戏网站怎么搭建?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
,交易猫的商品怎么发布到网站上去?
移动端脚本框架Hammer.js
,网页ppt怎么弄成自己的ppt?
制作公司内部网站有哪些,内网如何建网站?
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
如何在阿里云香港服务器快速搭建网站?
音响网站制作视频教程,隆霸音响官方网站?
JavaScript模板引擎Template.js使用详解
如何选择可靠的免备案建站服务器?
深入理解Android中的xmlns:tools属性
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
如何在云服务器上快速搭建个人网站?
Laravel怎么判断请求类型_Laravel Request isMethod用法
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何在云虚拟主机上快速搭建个人网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
C语言设计一个闪闪的圣诞树
Laravel用户密码怎么加密_Laravel Hash门面使用教程
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何快速完成中国万网建站详细流程?
如何安全更换建站之星模板并保留数据?
如何挑选优质建站一级代理提升网站排名?
在线制作视频的网站有哪些,电脑如何制作视频短片?
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
Android使用GridView实现日历的简单功能
LinuxCD持续部署教程_自动发布与回滚机制
Laravel如何创建自定义Artisan命令?(代码示例)
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?

