原生下拉刷新SwipeRefreshLayout的使用

Android支持库SwipeRefreshLayout 介绍 SwipeRefreshLayout 是 Android 官方 v4 支持包中的一个组件,该组件当中只接受 1 个子组件也就是需要刷新内容的组件,如果有多个子组件时将只展示第一个子组件中所更新的内容,后面的子组件将不予展示。这个子组件必须是允许滚动的,如 ListView、GridView 或者是 RecyclerView 等。该组件主要用于在屏幕中手指向下滑动时起到下拉刷新数据的作用,例如,计步软件中同步数据时就可以使用 SwipeRefreshLayout 来实现,如图 7.20 所示。 相关 阅读详情
说到下拉刷新,最为人所知的就是chrisbanes的Android-PullToRefresh,一个强大的下拉刷新开源项目,支持各种常用控件。后来,Google为我们提供的android-support-v4包,从19.1版本开始,推出了自己的下拉刷新控件SwipeRefreshLayout。在知乎和豌豆荚等应用中我们都可以看到SwipeRefreshLayout的影子。

SwipeRefreshLayout官方文档链接:
https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

下面,我们来实现一个简单的下拉刷新操作。

效果图:


核心代码
MainActivity.java
package net.csdn.blog.ruancoder;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {
    private SwipeRefreshLayout mSwipeRefreshLayout;
    private ArrayAdapter<String> mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView listView = (ListView) findViewById(R.id.listview);
        List<String> data = new ArrayList<String>();
        for (int i = 0; i < 5; i++) {
            data.add("item " + i);
        }
        mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1,
                data);
        listView.setAdapter(mAdapter);

        mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefreshlayout);
        // 设置刷新时进度动画变换的颜色,接收参数为可变长度数组。也可以使用setColorSchemeColors()方法。
        mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_orange_light, android.R
                .color.holo_green_light);
        // 设置刷新时圆形图标的大小。只可传递2个参数,SwipeRefreshLayout.LARGE或SwipeRefreshLayout.DEFAULT。
        mSwipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);
        // 设置刷新时圆形图标的背景色。也可以使用setProgressBackgroundColorSchemeColor()方法。
        mSwipeRefreshLayout.setProgressBackgroundColorSchemeResource(android.R.color.background_light);
        // 设置刷新时的圆形图标。scale:是否缩放;start:圆形图标在刷新前的起始位置;end:圆形图标的偏移量。
        mSwipeRefreshLayout.setProgressViewOffset(true, 100, 200);
        // 设置会触发下拉刷新的手势滑动距离
        mSwipeRefreshLayout.setDistanceToTriggerSync(100);
        // 设置刷新的监听事件
        mSwipeRefreshLayout.setOnRefreshListener(this);
    }

    @Override
    public void onRefresh() {// 监听下拉刷新
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(2 * 1000);
                } catch (InterruptedException e) {
                }
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mAdapter.add("blog.youkuaiyun.com/ruancoder");
                        // 结束刷新
                        mSwipeRefreshLayout.setRefreshing(false);
                    }
                });
            }
        }).start();
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefreshlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</android.support.v4.widget.SwipeRefreshLayout>

AndroidStudio安卓原生开发_SwipeRefreshLayout_下拉刷新控件---Android原生开发工作笔记119 然后我们再来看一个SwipeRefreshLayout,这个是用来实现下拉刷新的一个UI控件. 注意这个SwipeRefreshLayout里面只能放一个子view,一般都是放一个listview.来放一个列表. 然后看上面,这个SwipeRefreshLayout的常用的方法,可以看到上面的一些方法. 我们去看看怎么使用,首先我们直接用 activity_main.xml 在里面,可以看到我们直接写一个 SwipeRefreshLayout,然后写上id,里面写一个子view, L.. 阅读详情

相关推荐

Android下拉刷新控件SwipeRefreshLayout实践指南

本文还有配套的精品资源,点击获取 简介:SwipeRefreshLayout是Android SDK中的一个布局组件,主要用于实现下拉刷新功能,常用于列表或网格视图的顶部。本指南详细介绍了SwipeRefreshLayout的基本结构、使用方法、自定义行为和实际应用,涵盖了如何通过XML布局和Java代码进行配置,以及如何控制刷新状态、自定义颜色方案和刷新动画。此外,本指南...

weixin_29476595的博客 3565

Android studio SwipeRefreshLayout下拉刷新的用法

Android studio SwipeRefreshLayout下拉刷新的用法

afufufufu的博客 1983

Landsat 9 数据预处理第一步:在ENVI里正确加载影像的保姆级指南(含MTL文件处理)

本文详细介绍了Landsat 9数据在ENVI中的预处理流程,重点讲解了MTL文件的关键修改与正确加载方法,帮助遥感新手快速掌握数据加载技巧。通过辐射定标、大气校正等步骤,确保数据达到分析就绪状态,适用于土地覆盖分类等高级应用。

weixin_29201313的博客 207

SwipeRefreshLayout 下拉刷新、上拉加载的使用

一、SwipeRefreshLayout简单介绍 1、SwipeRefreshLayout是Google推出的刷新控件。 2、可以设置下拉刷新的高度,达到一定高度时才会刷新 3、使用该控件实现刷新时,需要在这个布局里包裹可以滑动的子控件,如ListView等,并且只能有一个子控件。 4、SwipeRefreshLayout只实现了下拉刷新功能,上拉加载需要自定义实现 二、SwipeRef...

AsiaLYF 6070

西门子WinCC VBS脚本实战:5分钟搞定变量记录导出到Excel(附完整代码)

本文提供了一套高效的西门子WinCC VBS脚本方案,帮助工程师在5分钟内将变量记录数据导出至Excel。方案详细解析了时区转换、数据库连接、SQL查询优化等核心难点,并附带了完整、可直接使用的VBS代码,解决了工业自动化项目中数据导出的实际痛点。

moss5的博客 609

智能枕头

睡觉和吃饭是一样重要的,一个人想要健康的体魄,不仅要饮食得当,更需要有一个好的睡眠质量。随着人们生活品质的提高,人们对于睡眠的要求越来越高,那么就非常需要一款舒适的枕头。为了适应市场的需求,我爱物联网推出了智能枕头。因为智能枕头可以给头部及颈椎一个良好的承托力,舒适、柔软、放松,让人更好的进入睡眠。 目录 一、智能枕头方案介绍 二、智能枕头的优点 三、智能枕头功能介绍 四、智能枕头APP开发 五、...

6108我爱物联网方案开发优快云博客 3660

使用SwipeRefreshLayout作为加载Loading动画

结合之前的文章,关于RecyclerView加载图片,下面这篇文章: http://blog.youkuaiyun.com/wb175208/article/details/53618862   但是在Item加载图片的时候,一般情况下要使用一个Loading动画以提高用户的体验,网上这样的示例很多。但是我使用的是SwipeRefreshLayout来实现加载动画。 1.首先是布局文件,要在Recycle

wb175208的专栏 2901

从零搭建《火影忍者》手游服务端:Linux环境部署与全流程实战

游戏服务器后端开发是构建大型多人在线体验的核心技术,其原理涉及高并发网络通信、分布式系统架构与数据一致性保障。在技术价值上,一套稳定高效的服务端不仅能支撑海量玩家实时交互,更是游戏业务逻辑、经济系统和安全防线的基石。典型的应用场景包括MMORPG、回合制卡牌、SLG等中重度手游。本文以《火影忍者》IP的横版卡牌回合制手游为例,聚焦于**手工服务端**的完整搭建过程,详细拆解从Linux系统初始化、MySQL与**Redis**缓存部署、核心服务编译、到代理后台联调的全链路实践,为开发者深入理解游戏后端架构提

weixin_30800615的博客 339

谷歌原生下拉刷新SwipeRefreshLayout

下拉刷新之SwipeRefreshLayout: 效果如图: 最重要的几个方法: //findview   swipeRefreshLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipeRefreshLayout);   //设置卷内的颜色   swipeRefreshLayout.setColorScheme

君子务本 908

PPT高清导出秘籍:如何轻松设置600dpi图片分辨率

本文详细解析了PPT导出图片模糊的根本原因,并提供了通过修改Windows注册表将导出分辨率从默认的96dpi提升至600dpi的完整教程。该方法能显著提升图片清晰度,满足学术出版与高质量印刷需求,文中还包含效果对比、进阶设置及常见问题解答。

a0b1c2d3的专栏 1316

Icarus Verilog和GTKwave使用简析

本简要介绍Icarus Verilog和GTKwave的使用,使用iverilog(Icarus Verilog)编译仿真verilog而使用GTKWave查看仿真数据波形下载安装 基本使用 iverilog使用 GTKWave使用 iverilog常用选项 使用库 注意

husipeng86的专栏 1万+

Android原生下拉刷新SwipeRefreshLayout

Android原生的下拉刷新我这里没有添加数据源,大家可以自行添加

吴唐人的博客 615

cesium 深度图(获取区域最高最低点位)

文章摘要: Cesium深度图技术可用于获取区域地形高程数据,核心实现步骤包括:1)通过离屏相机构建独立渲染环境,使用正交投影确保采样精度;2)采用离屏渲染技术获取均匀分布的地形点数据。关键技术点包含多边形外包矩形计算、后台相机配置(5km高度正交投影)、1024×1024像素离屏视图设置,以及深度数据解析(RGBA格式转换和三维坐标还原)。该方法避免了主视图干扰,可精准获取区域内地形高程信息,为填挖方分析等应用提供基础数据支持。

God's asylum的博客 283

Android原生下拉刷新SwipeRefreshLayout实践

本篇文章翻译自Ravi Tamada的Android Swipe Down to Refresh ListView Tutorial首先来看一下效果图你应该发现许多的android app例如Twitter,Google+都提供了一个下拉刷新数据的功能,只要用户从上往下滑动,新的内容就会加载出来,这篇文章我们将学习如何开发出同样的功能。

阿拉灯神灯的专栏 7166

基于YOLOv11的手术器械计数系统:从数据集构建到Web应用部署

m2cai16-tool数据集:包含15种腹腔镜手术器械的标注图像Cholec80数据集:包含80个胆囊切除手术视频,标注了7种器械SurgicalTools数据集:包含超过10,000张手术器械图像,涵盖21类常见器械手术剪(Scissors)止血钳(Hemostat)持针器(Needle Holder)手术刀(Scalpel)镊子(Forceps)拉钩(Retractor)吸引器(Suction)

YOLO 397

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Google原生下拉刷新控件 SwipeRefreshLayout

SwipeRefrshLayout是Google官方更新的一个Widget,可以实现下拉刷新的效果。该控件集成自ViewGroup在support-v4兼容包下,不过我们需要升级supportlibrary的版本到19.1以上。基本使用的方法如下: setOnRefreshListener(OnRefreshListener):添加下拉刷新监听器setRefreshing(boolean):

nkdwslsd的专栏 441

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android 原生下拉刷新控件SwipeRefreshLayout的使用

SwipeRefreshLayout是一种下拉刷新的组件,它被放到了V4包中,只允许有一个直接子类。 使用SwipeRefreshLayout可以实现下拉刷新,前提是布局里需要包裹一个可以滑动的子控件,然后在代码里设置OnRefreshListener设置监听,最后在监听里设置刷新时的数据获取就可以了。 主要方法: 1.isRefreshing() 判断当前的状态是否是刷新状态。 2...

qq_36699930的博客 1539

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Google原生下拉刷新组件SwipeRefreshLayout

SwipeRefrshLayout是Google官方更新的一个Widget,可以实现下拉刷新的效果。该控件集成自ViewGroup在support-v4兼容包下,不过我们需要升级supportlibrary的版本到19.1以上。基本使用的方法如下: setOnRefreshListener(OnRefreshListener):添加下拉刷新监听器setRefreshing(boolean):

Android 612

Android 原生下拉刷新SwipeRefreshLayout 与 RecycleLayout 使用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white"

rzc0525的博客 488

android原生(Google)下拉刷新SwipeRefreshLayout

效果: 布局xml: 只用在已存在的布局文件外层套用android.support.v4.widget.SwipeRefreshLayout即可 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_container" android:layout_width

Beluga_白鲸 1666

SwipeRefreshLayout-- 谷歌原生下拉刷新布局

大家经常使用下拉刷新,上拉刷新这些框架,一直在寻找一个好看好用的框架,不过总会存在一些问题,前一段时间看到了谷歌原生的一个布局SwipeRefreshLayout,通过对手势的监听,达到下列刷新的效果。 ![示例图片](http://img.blog.youkuaiyun.com/20160506184510109) 有一些常用的方法: 1、setOnRefreshListener(Sw

liuyue_的博客 707

taro3 仿android原生的SwipeRefreshLayout下拉刷新组件

taro3 仿android原生的SwipeRefreshLayout组件一、android原生效果图二、代码三、遗留问题 一、android原生效果图 二、代码 import React from 'react' import classNames from 'classnames' import styles from './index.module.scss' import { CommonPage } from 'tq-pat-ui' import { Canvas, ITouchEvent, S

qq_41778208的博客 501

超简单!原生SwipeRefreshLayout实现首页下拉刷新

简介SwipeRefreshLayout是Google官方推出的一款下拉刷新组件,位于v4兼容包下android.support.v4.widget.SwipeRefreshLayout 这里简单介绍一下它的超简单的用法,因为我比较懒,所以直接上代码了!布局布局构造介绍大概讲一下这个布局构造,直接从项目里贴过来的,主页用DragLayout布局的,由一个主页和一个侧边栏组成xml<android.s

TaoYuan 1458

RecyclerView的基本使用,还有SwipeRefreshLayout(原生的下拉刷新)(1)

基本简介: RecyclerView是support-v7包中的新组件,是一个强大的滑动组件, 与ListView相比, 同样拥有item回收复用的功能,但是直接把viewholder的实现封装起来,用户只要实现自己的viewholder就可以了,该组件会自动帮你回收复用每一个item。它不但变得更精简,也变得更加容易使用,而且更容易组合设计出自己需要的滑动布局 当然,如果

u011889786的专栏 778

自己封装的工具类,使用原生SwipeRefreshLayout+RecycleView实现下拉刷新和加载更多

实现SwipeRefreshLayout+RecycleView实现刷新在你的xml文件里写上如下代码: <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/SwipeRefreshLayout" android:layout_width="match_parent

DyncKathline的博客 1093
上一篇: 获取LayoutInflater的三种方式分析
下一篇: 布局属性layout_weight解析
ruancoder
博客等级 码龄10年 42粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值