实现RecyclerView下拉刷新和上拉加载更多以及RecyclerView线性、网格、瀑布流效果演示

效果预览

实例APP

小米应用商店

使用方法

build.gradle文件

  1. dependencies {
  2. compile 'com.wuxiaolong.pullloadmorerecyclerview:library:1.0.4'
  3. }

xml引用

  1. <com.wuxiaolong.pullloadmorerecyclerview.PullLoadMoreRecyclerView
  2. android:id="@+id/pullLoadMoreRecyclerView"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:layout_margin="10dp" />

设置线性布局

  1. mPullLoadMoreRecyclerView = (PullLoadMoreRecyclerView) view.findViewById(R.id.pullLoadMoreRecyclerView);
  2. mPullLoadMoreRecyclerView.setLinearLayout();

设置网格布局

  1. mPullLoadMoreRecyclerView.setGridLayout(2);//参数为列数

设置交错网格布局,即瀑布流效果

  1. mPullLoadMoreRecyclerView.setStaggeredGridLayout(2);//参数为列数

绑定适配器

  1. mRecyclerViewAdapter = new RecyclerViewAdapter();
  2. mPullLoadMoreRecyclerView.setAdapter(mRecyclerViewAdapter);
  3.  
  4. public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
  5.  
  6. public RecyclerViewAdapter() {
  7.  
  8. }
  9.  
  10. @Override
  11. public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  12. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_item, parent, false);
  13. return new ViewHolder(view);
  14. }
  15.  
  16. @Override
  17. public void onBindViewHolder(ViewHolder holder, int position) {
  18.  
  19. }
  20.  
  21. @Override
  22. public int getItemCount() {
  23. return 0;
  24. }
  25.  
  26. public class ViewHolder extends RecyclerView.ViewHolder {
  27.  
  28. public ViewHolder(View itemView) {
  29. super(itemView);
  30.  
  31. }
  32. }
  33. }

调用下拉刷新和加载更多

  1. mPullLoadMoreRecyclerView.setOnPullLoadMoreListener(new PullLoadMoreRecyclerView.PullLoadMoreListener() {
  2. @Override
  3. public void onRefresh() {
  4.  
  5. }
  6.  
  7. @Override
  8. public void onLoadMore() {
  9.  
  10. }
  11. });

刷新结束

  1. mPullLoadMoreRecyclerView.setPullLoadMoreCompleted();

其他方法

不需要下拉刷新

  1. mPullLoadMoreRecyclerView.setPullRefreshEnable(false);

不需要上拉刷新

  1. mPullLoadMoreRecyclerView.setPushRefreshEnable(false);

设置上拉刷新文字

  1. mPullLoadMoreRecyclerView.setFooterViewText("loading");

设置下拉刷新颜色

  1. mPullLoadMoreRecyclerView.setColorSchemeResources(android.R.color.holo_red_dark,android.R.color.holo_blue_dark);

快速Top

  1. mPullLoadMoreRecyclerView.scrollToTop();
  2.  
  3. 源码下载:
        https://github.com/WuXiaolong/PullLoadMoreRecyclerView

实现RecyclerView下拉刷新和上拉加载更多以及RecyclerView线性、网格、瀑布流效果演示的更多相关文章

  1. juery下拉刷新,div加载更多元素并添加点击事件(二)

    buffer.append("<div class='col-xs-3 "+companyId+"' style='padding-left: 10px; padd ...

  2. android--------自定义控件ListView实现下拉刷新和上拉加载

    开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多,为了方便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能. Android下拉刷新可以分为两种情况: 1.获取 ...

  3. Android 自定义 ListView 上下拉动“刷新最新”和“加载更多”歌曲列表

    本文内容 环境 测试数据 项目结构 演示 参考资料 本文演示,上拉刷新最新的歌曲列表,和下拉加载更多的歌曲列表.所谓"刷新最新"和"加载更多"是指日期.演示代码 ...

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

    RecyclerView已经写过两篇文章了,分别是Android 5.X新特性之RecyclerView基本解析及无限复用 和 Android 5.X新特性之为RecyclerView添加Header ...

  5. 手把手教你实现RecyclerView的下拉刷新和上拉加载更多

    手把手教你实现RecyclerView的下拉刷新和上拉加载更多     版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...

  6. RecyclerView下拉刷新和上拉加载更多实现

    RecyclerView下拉刷新和上拉加载更多实现 转 https://www.jianshu.com/p/4ea7c2d95ecf   在Android开发中,RecyclerView算是使用频率非 ...

  7. Android 实现下拉刷新和上拉加载更多的RECYCLERVIEW和SCROLLVIEW

    PullRefreshRecyclerView.java /** * 类说明:下拉刷新上拉加载更多的RecyclerView * Author: gaobaiq * Date: 2016/5/9 18 ...

  8. Diycode开源项目 搭建可以具有下拉刷新和上拉加载的Fragment

    1.效果预览 1.1.这个首页就是一个Fragment碎片,本文讲述的就是这个碎片的搭建方式. 下拉会有一个旋转的刷新圈,上拉会刷新数据. 1.2.整体结构 首先底层的是BaseFragment 然后 ...

  9. Android实现RecyclerView的下拉刷新和上拉载入很多其它

    需求 先上效果图, Material Design风格的下拉刷新和上拉载入很多其它. 源代码地址(欢迎star) https://github.com/studychen/SeeNewsV2 假设对于 ...

随机推荐

  1. mysql 1366的错误 字符集错误解决方案

    最近用mysqlalchmy的时候遇到了 sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1366, "Incorrec ...

  2. 【LabVIEW技巧】代码块快速放置

    前言 之前的文章中介绍了如何使用QuickDrop来实现快速代码放置,今天我们来详细的聊一下如何进行代码块的快速放置. 正文 LabVIWE程序设计中,我们在架构层级总是进行重复性的编写.举一个例子: ...

  3. mysql innodb 数据表不存在

    方法一: https://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 修改my.cnf文件 [mysqld] innodb ...

  4. 12:django 模板 内建过滤器

    django 模板 内建过滤器 add{{ value|add:"2" }} 对象的加法,如果都是整数类型,简单的算术加法:如果是列表,则是列表的相加 如果无法执行对象的相加,比如 ...

  5. windows7配置python和django的开发环境

    直接上图,这是我在我的电脑配置windows7python和django开发环境的所有用到的软件 要求不高,只需要这几个软件的版本相一致就行, 需要注意的是软件安装时需要统一是32位或者64位的软件, ...

  6. html,图片上传预览,input file获取文件等相关操作

    input file常用方法: var obj=document.getElementById("upimage"); var file=obj.files[0];//获取文件数据 ...

  7. 《java并发编程实战》读书笔记2--对象的共享,可见性,安全发布,线程封闭,不变性

    这章的主要内容是:如何共享和发布对象,从而使它们能够安全地由多个线程同时访问. 内存的可见性 确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化. 上面的程序中NoVisibility可能 ...

  8. hdu 1505(最大子矩阵)

    City Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  9. AC日记——[ZJOI2012]网络 bzoj 2816

    2816 思路: 多个LCT: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 10005 #define l ...

  10. ubuntu要安装新软件,已有deb安装包

    如果ubuntu要安装新软件,已有deb安装包(例如:iptux.deb),但是无法登录到桌面环境.那该怎么安装?答案是:使用dpkg命令.dpkg命令常用格式如下:sudo dpkg -I iptu ...