SwipeRefreshLayout的使用详解

2023-05-16

一,概述

SwipeRefreshLayout意思为下拉刷新的布局,其继承ViewGroup,Google在android5.0中提供的下拉刷新控件,且提供了v4支持包。
这是一个容器布局,将listView或SCrollView放入这个容器布局中即可实现下拉刷新的效果。有效的将下拉刷新控件与展示内容的控件实现了分离。这种实现思想非常值得学习。
下面以与ListView连用说明SwipeRefreshLayout的使用步骤。

二,使用步骤

SwipeRefreshLayout的使用非常简单,下面直接上代码。

1,在布局文件中

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.honor.fighting.putorefreshlist.MainActivity">
    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ListView
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </android.support.v4.widget.SwipeRefreshLayout>
</FrameLayout>

2,在代码中找到ListView对象并设置适配器

list_view = (ListView) findViewById(R.id.list_view);
list_view.setAdapter(new MyAdapter());//适配器不是重点,具体代码略。

3,在代码中找到SwipeRefreshLayout对象并设置刷新监听器

swipe_refresh_layout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);//找到刷新对象
swipe_refresh_layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {//设置刷新监听器
    @Override
    public void onRefresh() {
        new Handler().postDelayed(new Runnable() {//模拟耗时操作
            @Override
            public void run() {
                swipe_refresh_layout.setRefreshing(false);//取消刷新

            }
        },2000);
    }
});

此时就实现了下拉刷新的功能,实现效果如下:
这里写图片描述

三,高级用法

SwipeRefreshLayout还有以下常用方法:

swipe_refresh_layout.setRefreshing(false);//取消刷新,因此刷新图标
swipe_refresh_layout.setRefreshing(true);//设置为刷新状态,显示刷新图标
swipe_refresh_layout.setEnabled(false);//设置为不能刷新
boolean refreshing = swipe_refresh_layout.isRefreshing();//是否正在刷新

样式的设置:

//设置刷新时旋转图标的颜色,这是一个可变参数,当设置多个颜色时,旋转一周改变一次颜色。
swipe_refresh_layout.setColorSchemeResources(R.color.colorAccent,R.color.colorPrimary);

四,扩展使用

不得不承认SwipeRefreshLayout使用的方便,且节藕。但是也不得不否认SwipeRefreshLayout的刷新UI很low,很难入公司设计师的法眼,所以在实际开发中多对SwipeRefreshLayout二次封装,更改刷新UI。

SuperEasyRefreshLayout是一个非常强大的二次封装控件,不仅美化了刷新UI,而且可以根据需要自定义UI效果的View,且实现了上拉加载更多的功能。
SuperEasyRefreshLayout的使用介绍的地址是:http://blog.csdn.net/fightingxia/article/details/75307875
SuperEasyRefreshLayout的源码在GitHub上的地址是:https://github.com/guozhengXia/SuperEasyRefreshLayout

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwipeRefreshLayout的使用详解 的相关文章

  • crontab使用详解

    名称 crontab 使用权限 所有使用者 使用方式 crontab u user file crontab u user l r e 说明 crontab 是用来让使用者在固定时间或固定间隔执行程序之用 xff0c 换句话说 xff0c
  • python之Tkinter使用详解

    一 前言 1 1 Tkinter是什么 Tkinter 是使用 python 进行窗口视窗设计的模块 Tkinter模块 Tk 接口 是Python的标准Tk GUI工具包的接口 作为 python 特定的GUI界面 xff0c 是一个图像
  • Android Design Support Library使用详解

    Android Design Support Library使用详解 Google在2015的IO大会上 xff0c 给我们带来了更加详细的Material Design设计规范 xff0c 同时 xff0c 也给我们带来了全新的Andro
  • ButterKnife与BindView使用详解

    ButterKnife与BindView使用详解 ButterKnife的优势 具有强大的view绑定和click事件处理能力 方便处理Adapter里的viewHolder绑定问题 运行时不会影响app效率 xff0c 配置方便 代码清晰
  • 断言ASSERT使用详解

    一 assert的定义 原以为assert 仅仅是个报错函数 xff0c 事实上 xff0c 它居然是个宏 xff0c 并且作用并非 34 报错 34 在经过对其进行一定了解之后 xff0c 对其作用及用法有了一定的了解 xff0c ass
  • Qt QMessageBox使用详解

    本文详细的介绍了QMessageBox控件的各种操作 xff0c 例如 xff1a 消息提示框的使用 判断消息提示框的按钮 标准图标和自定义图标 定时关闭 自定义样式等操作 本文作者原创 xff0c 转载请附上文章出处与本文链接 Qt QM
  • SQLiteOpenHelper使用详解

    SQLiteOpenHelper 的子类 xff0c 至少需要实现三个方法 xff1a 1 构造函数 调用父类 SQLiteOpenHelper 的构造函数 这个方法需要四个参数 xff1a 上下文环境 xff08 例如 xff0c 一个
  • PyTorch:Dataset()与Dataloader()的使用详解

    目录 1 Dataset类的使用 2 Dataloader类的使用 3 总结 Dataset类与Dataloader类是PyTorch官方封装的用于在数据集中提取一个batch的训练用数据的接口 xff0c 其实我们也可以自定义获取每个ba
  • ROS nodelet 使用详解

    本文以nodelet tutorial math为例来了解nodelet的原理及使用方法 xff0c 理论知识参考http blog csdn net zyh821351004 article details 52143309 代码地址 x
  • 二十八. Semaphore的使用详解

    前言 Semaphore的官方注释如下 计数信号量 从概念上讲 xff0c 信号量维护一组许可证 xff08 permits xff09 通常 xff0c 每次调用Semaphore acquire方法时如果已经没有许可证 xff0c 则会
  • axios 使用详解

    一 安装 cnpm install axios 二 使用 三种写法 span class token comment 第一种写法 span axios span class token punctuation span span class
  • Postman使用详解

    一 Postman背景介绍 用户在开发或者调试网络程序或者是网页B S模式的程序的时候是需要一些方法来跟踪网页请求的 xff0c 用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具 今天给大家介绍的这款网页调试工具不仅可以
  • mysql-mysqlbinlog的使用详解

    一 背景 二进制日志在MySQL数据库中有着至关重要的作用 xff0c 而读取二进制日志的工具就显得同样重要了 xff0c 官方的mysqlbinlog就是读取二进制日志的工具 xff0c 这里就结合官网和自己的实践整理一下 xff08 P
  • SwipeRefreshLayout 片段创建时没有动画

    我在用着android support v4 widget SwipeRefreshLayout with android support v7 widget RecyclerView 关于片段视图创建我需要显示SwipeRefreshLa
  • 使用支持库 23.2.0 的 Recyclerviews 和 SwipeRefreshLayout

    有人找到了让 recyclerviews AppbarLayouts 和 SwipeRefreshLayout 在 23 2 上协同工作的方法吗 我认为我正在使用一种非常标准的方法 但是当尝试向上移动回收器视图时 swiperefreshl
  • Android 滑动刷新布局向上滚动刷新

    我已经为我的网格视图实现了滑动刷新布局 如果我向下拉 滚动 以调用刷新 它会完美地工作 但是 我试图弄清楚当用户向上滚动时如何刷新 因此 当用户到达网格中的最后一个项目 我的限制是 10 时 当用户看到所有 10 个项目然后向上拉或尝试继续
  • SwipeRefreshLayout 选项卡布局。 Webview无法向上滚动

    好的 我有一个选项卡视图 其中有一个网络视图 一个列表视图和一些其他页面 我希望能够执行 SwipeRefreshLayout 来刷新每个项目 我在每一页上都有这个工作 但是 当我在网络视图中向下滚动时 我无法向上滚动 它触发刷新并重建它
  • SwipeRefreshLayout 中的 RecyclerView 不是“wrap_content”

    我有一个RecyclerView作为唯一的孩子SwipeRefreshLayout 我想要RecyclerViewwrap content 当我将它们都设置为 wrap content 时 它不起作用 这RecyclerView物品也较少m
  • Android - 当 SwipeRefreshLayout 加载时单击 RecyclerView 时崩溃

    我有一个RecyclerView里面一个SwipeRefreshLayout 当我重新加载页面时 当SwipeRefreshLayout正在加载 我单击该项目RecyclerView它崩溃了 04 21 13 14 49 605 25586
  • SwipeRefreshLayout + 另一个视图

    我的布局设置如下

随机推荐

  • pytoch报错OSError: [Errno 24] Too many open files

    因为默认的file descriptor共享策略使用文件描述符作为共享内存句柄 xff0c 并且当DataLoader上有太多批次时 xff0c 这将达到限制 要解决此问题 xff0c 您可以通过将其添加到脚本来切换到file system
  • MXNet的gluon转symbol并保存

    from mxnet gluon model zoo import vision import mxnet as mx import numpy as np mobilenetv205 61 vision get model 39 mobi
  • 激光雷达技术路线:机械式、MEMS是主流,OPA、Flash、FMCW发展空间大

    激光雷达是通过发射激光束来探测物体与传感器之间精准距离的主动测量装置 xff0c 包含发射单元 接收单元 扫描单元以及数据处理单元 激光雷达通过激光器和探测器组成的收发阵列 xff0c 结合光束扫描 xff0c 可以对广义机器人所处环境进行
  • C++ 错误解决 —— internal compiler error

    问题 xff1a g 43 43 编译时 xff0c 报错 xff1a g 43 43 internal compiler error Killed program cc1plus 出错原因 xff1a 出错的原因是 xff08 虚拟机 x
  • 基于STC89C52的智能小车——红外避障篇

    做这个小车真是历尽波折 因为我的零件是散买的 xff0c 所以在组装时出了各种幺蛾子 先是装马达的时候发现螺丝买短了 xff0c 之后又是单片机最小单元装不到小车底板上 千辛万苦把小车组装好了 xff0c 终于可以开心 xff08 并不 x
  • make、makefile、cmake之间的区别与联系

    make makefile cmake之间的区别与联系 首先说明一下make makefile cmake存在的原因 在进行编译时 xff0c 如果程序只有一个源文件 xff0c 那么我们可以直接利用gcc命令对其进行编译 xff1b 但是
  • 基于STC89C52的智能小车——PWM调速篇

    虽然我的小车因为电池电压太低慢的要死 xff0c 不过PWM还是要学的 PWM简单来说就是通过调整占空比 xff08 一个时间段 t 内电机运行的时间占总时间的比例 xff09 来调整小车速度 当然为了小车运行稳定 t 必须很小 xff0c
  • 基于STC89C52的智能小车——红外避障+PWM调速篇

    这篇学习笔记虽然看起来很水 xff0c 毕竟红外避障和PWM在之前的学习笔记里都写过了 xff0c 但这次确实是我耗时最久的一次作业 用软件实现PWM真是一个深渊巨坑 首先是由于小车的方向函数的运作方式是切换运动状态 xff0c 而我们用P
  • 基于STC89C52的智能小车——蓝牙遥控篇

    蓝牙遥控是依靠单片机的串口通讯来实现的功能 这周我主要学习的内容是串口通讯 在完成学习后我用之前买避障小车时顺便买的蓝牙模块做了一个升级版智能小车 xff0c 它可以通过蓝牙模块实现避障模式与蓝牙遥控模式的切换以及速度的调整 蓝牙模块的接线
  • DS1302实时时钟

    DS1302是一款可离线运转的实时时钟 本周我的学习任务是利用它和LCD1602来在学习板上制作一个时钟 下面是代码 xff08 除LCD1602的头文件 xff09 main span class token macro property
  • 利用矩阵键盘制作密码锁

    本周学习了关于矩阵键盘的知识 xff0c 并利用矩阵键盘制作了密码锁 矩阵键盘利用矩阵式的连接减少了IO口的使用 xff0c 并用扫描的方式保证每一个按键的响应 下面是代码 main span class token macro prope
  • LED点阵

    本周的学习内容是LED点阵的使用 其实LED点阵与动态数码管的原理非常相似 xff0c 都是通过扫描和视觉暂停现象来实现多个LED同时点亮的视觉效果 不同的是 xff0c 点阵可以通过74HC595来实现三根线串行输入多根线并行输出的效果
  • 前端进度条动画(自定义颜色)

    前端进度条动画 xff08 自定义 代码如下 xff08 示例 xff09 xff1a span class token operator lt span template span class token operator gt span
  • Keil调试中遇到问题汇总

    1 Keil MDK中工程编译弹出提醒框 xff1a Browse information of one of more files is not available Doing a project rebuild might fix th
  • C语言实现TCP服务器与客户端通信

    以上是TCP通信客户端与服务器实现通信的基本原理流程图 1 客户端的实现 xff08 4个步骤 xff09 1 1创建socket对象 1 2请求连接 1 3发送数据 1 4关闭套接字 include lt stdio h gt inclu
  • 关闭select监控的fd出现的问题及解决方案

    关闭select监控的fd出现的问题及解决方案 前言一 实现思路二 问题三 bind 失败分析1 使用netstat查看socket状态2 为什么srv fd引用计数会加13 select 超时后srv fd引用计数减14 man sele
  • SVN如何打tag,以及主干,分支的相互合并操作

    1 给项目打 tag的步骤 1 xff09 选中项目后 xff0c 点击鼠标的左键弹出对话框 选择TortoiseSVN gt Branch tag 如图所示 点击Branch tag后弹出如下对话框 svn 显示的路径是需要打tag文件的
  • OKHttp使用详解

    一 xff0c OKHttp介绍 okhttp是一个第三方类库 xff0c 用于android中请求网络 这是一个开源项目 是安卓端最火热的轻量级框架 由移动支付Square公司贡献 该公司还贡献了Picasso和LeakCanary 用于
  • HttpUrlConnection使用详解

    一 xff0c HttpURLconnection的介绍 在Android开发中网络请求是最常用的操作之一 xff0c Android SDK中对HTTP 超文本传输协议 也提供了很好的支持 xff0c 这里包括两种接口 1 标准Java接
  • SwipeRefreshLayout的使用详解

    一 xff0c 概述 SwipeRefreshLayout意思为下拉刷新的布局 xff0c 其继承ViewGroup xff0c Google在android5 0中提供的下拉刷新控件 xff0c 且提供了v4支持包 这是一个容器布局 xf