带动画的下拉刷新RecyclerView

不废话,先看效果:

图1: 图2:

分割线看起来有点问题是截图软件的原因,测试过程中并没有这个问题。

图1为是使用自定义Header的下拉刷新和上拉上拉加载。

图2为没有设置Header和Footer时使用默认的下拉刷新和上拉加载。

项目地址:https://github.com/shichaohui/AnimRefreshRecyclerViewDemo

项目中包含一个demo(普通Android工程)和Android Library。

用法:

* 下载并导入demo和Android Library。

* 在自己的项目中引用Android Library项目(Library项目中并没有引用资源,也可以自己打成jar包再使用)。

* 参考demo进行设置。

* 下面代码片段中,除了RecyclerView自带的方法,其他方法都是可选的。

用法代码片段:

// 自定义的RecyclerView, 也可以在布局文件中正常使用
mRecyclerView = new AnimRFRecyclerView(getActivity());
// 头部
headerView = LayoutInflater.from(getActivity()).inflate(R.layout.header_view, null);
// 脚部
footerView = LayoutInflater.from(getActivity()).inflate(R.layout.footer_view, null);

// 根据列表的不同效果选择不同的布局管理器
// 使用重写后的线性布局管理器
mRecyclerView.setLayoutManager(new AnimRFLinearLayoutManager(getActivity()));
// 使用重写后的格子布局管理器
// mRecyclerView.setLayoutManager(new AnimRFGridLayoutManager(getActivity(), 2));
// 使用重写后的瀑布流布局管理器
// mRecyclerView.setLayoutManager(new AnimRFStaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));

// 添加头部和脚部,如果不添加就使用默认的头部和脚部,addHeaderView()和setHeaderImage()必须同时使用
// mRecyclerView.addHeaderView(headerView);
// 设置头部的最大拉伸倍率,默认1.5f,必须写在setHeaderImage()之前
// mRecyclerView.setScaleRatio(2.0f);
// mRecyclerView.setHeaderImage((ImageView) headerView.findViewById(R.id.iv_hander));
// mRecyclerView.addFootView(footerView);

// 设置刷新动画的颜色
mRecyclerView.setColor(Color.RED, Color.WHITE);
// 设置头部恢复动画的执行时间,默认1000毫秒
mRecyclerView.setHeaderImageDurationMillis(1200);
// 设置拉伸到最高时头部的透明度,默认0.5f
mRecyclerView.setHeaderImageMinAlpha(0.6f);

// 设置适配器
mRecyclerView.setAdapter(new MyAdapter());

// 设置刷新和加载更多数据的监听,分别在onRefresh()和onLoadMore()方法中执行刷新和加载更多操作
mRecyclerView.setLoadDataListener(new AnimRFRecyclerView.LoadDataListener() {
    @Override
    public void onRefresh() {
        // 开启线程刷新数据
        new Thread(new MyRunnable()).start();
    }

    @Override
    public void onLoadMore() {
        // 开启线加载更多数据
        new Thread(new MyRunnable()).start();
    }
});

在刷新和加载过更多完成之后调用代码停止动画:

// 刷新完成后调用,必须在UI线程中
mRecyclerView.refreshComplate();

// 加载更多完成后调用,必须在UI线程中
mRecyclerView.loadMoreComplate();

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-17 21:34:49

带动画的下拉刷新RecyclerView的相关文章

Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录

经过一个星期的折腾,终于做完了这个Android 聊天表情输入.表情翻页带效果.下拉刷新聊天记录.这只是一个单独聊天表情的输入,以及聊天的效果实现.因为我没有写服务器,所以没有双方聊天的效果.主要是聊天中表情的选择,发送.表情翻页带有不同的效果.我在主要代码中都写了注释.下面看代码实现.附上本文源码,代码较多. 下载地址:点击 一.先看实现的效果图 二.调用接口以及设置MainActivity package com.example.activity; import java.util.Arra

使用google自带包实现下拉刷新功能

android 实现下拉刷新有很多开源的源码可以用 比如 :PullToRefreshListView  使用起来也很方便 现在还可以直接使用google libs下面的 android-support-v4.jar 这个包来实现了,请更新你的sdk到最新 使用 xml 布局 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android基础控件——SwipeRefreshLayout最简单的下拉刷新

还在使用传统的下拉刷新,觉得不够漂亮,怕被产品经理骂吗? 还在忧愁自己技术不够好,不会改造带动画的下拉刷新吗? 那么不要担心,使用SwipeRefreshLayout最简单的下拉刷新,既不失美观又简洁 SwipeRefreshLayout下拉刷新是Google自家的下拉刷新控件,使用过程跟开源库PullToRefresh差不多,废话不多说,开车啦 SwipeRefreshLayout实质上是一个ViewGroup,所以我们将其作为我们的根布局进行演示 经过这个步骤之后,其实在页面上就已经能够下拉

自定义RecyclerView实现下拉刷新,加载更多

RecyclerView出来的时间已经不短了,现在估计大部分的列表类的需求实现首选肯定是RecyclerView,基本上可以跟ListView说再见了.那么问题来了,一般情况下一个列表页面都会有下拉刷新和加载更多功能,RecyclerView本身并没有下拉刷新和加载更多功能,当然现在已经有很多优秀的开源的支持下拉刷新,加载更多功能的三方RecyclerView,可以直接拿过来用.但是...有时候光会用是不够的,还需要知道它们是这么实现的,实现的原理是什么.下面就来介绍一下RecyclerView

小程序下拉刷新

1.通过scroll-view实现 开始用scroll-view组件,通过scroll-view自带的触发下拉刷新.上拉加载事件. 在iOS下,可以正常触发,但在安卓机型下,必须先上滑一段距离再下滑,才能够触发下拉刷新事件,体验不太好.向小程序官方反馈,给我的回答是安卓机型不支持反弹效果. 上图是官网中关于scroll-view的内容,顺着思路,开始研究页面的滚动...继续改bug... 2.通过 onPullDownRefresh实现 1)需要在 .json 文件中配置.(.json 文件的格

带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载

转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/51321896 一 .前言 最近实在太忙,一个多礼拜没有更新文章了,于是今晚加班加点把demo写出来,现在都12点了才开始写文章. 1.我们的目标 把RecyclerView下拉刷新上拉加载更多加入到我们的开发者头条APP中. 2.效果图 3.实现步骤 找一个带上拉刷新下载加载更多的RecyclerView开源库,我们要站在巨人的肩膀上 下载下来自己先运行下demo,然

支持下拉刷新和上划加载更多的自定义RecyclerView(仿XListView效果)

首先看效果 下拉刷新:        上划加载        在项目更新的过程中,遇到了一个将XListView换成recyclerView的需求,而且更换完之后大体效果不能变,但是对于下拉刷新这样的效果,谷歌给出的解决方案是把RecyclerView放在一个SwipeRefreshLayout中,但是这样其实是拉下一个小圆形控件实现的,和XListView的header效果不同.在网上找了很多的别人代码,都没有实现我想要的效果,于是自己动手写了一个. 具体实现的效果有以下几条 下拉刷新功能:

Android 5.X新特性之为RecyclerView添加下拉刷新和上拉加载及SwipeRefreshLayout实现原理

RecyclerView已经写过两篇文章了,分别是Android 5.X新特性之RecyclerView基本解析及无限复用 和 Android 5.X新特性之为RecyclerView添加HeaderView和FooterView,既然来到这里还没学习的,先去学习下吧. 今天我们的主题是学习为RecyclerView添加下拉刷新和上拉加载功能. 首先,我们先来学习下拉刷新,google公司已经为我们提供的一个很好的包装类,那就是SwipeRefreshLayout,这个类可以支持我们向下滑动并进

Android实现RecyclerView自定义列表、点击事件以及下拉刷新

Android使用RecyclerView 1. 什么是RecyclerView RecyclerView 是 Android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活. 简单来说就是:RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式.它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持. 2.