最近项目中要用到瀑布流,要求:pulltorefresh框架下实现下拉和上拉,用recycleview。想此效果网上一大推,应该可以找到源码,后来找了很久也没有找到合适的。最后参考pulltorefreshlistview,自己写了一个。现将核心代码贴出来。

1.注册id。

在pulltorefresh_lib  的ids中添加

<item type="id" name="straggereddGridLayout" />

2.继承  PullToRefreshBase

package com.handmark.pulltorefresh.library;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.util.AttributeSet;
import android.view.View;
public class PullToRefreshStaggeredGridLayout extends
PullToRefreshBase<RecyclerView> {
public PullToRefreshStaggeredGridLayout(Context context) {
super(context);
}
public PullToRefreshStaggeredGridLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
//重写4个方法
//1 横竖设置
@Override
public final Orientation getPullToRefreshScrollDirection() {
return Orientation.VERTICAL;
}
//2  滑动的View
@Override
protected RecyclerView createRefreshableView(Context context, AttributeSet attrs) {
RecyclerView view = new RecyclerView(context, attrs);
//设置布局方式,此处的2 表示每行2个item
StaggeredGridLayoutManager mLayoutManager = new StaggeredGridLayoutManager(
2, StaggeredGridLayoutManager.VERTICAL);
view.setLayoutManager(mLayoutManager);
view.setId(R.id.straggereddGridLayout);
return view;
}
//重写4个方法
//3 是否滑动到底部
@Override
protected boolean isReadyForPullEnd() {
View view = getRefreshableView().getChildAt(getRefreshableView().getChildCount() - 1);
if (null != view) {
return getRefreshableView().getBottom() >= view.getBottom();
}
return false;
}
//重写4个方法
//4 是否滑动到顶部
@Override
protected boolean isReadyForPullStart() {
View view = getRefreshableView().getChildAt(0);
if (view != null) {
return view.getTop() >= getRefreshableView().getTop();
}
return false;
}
}

好了,下面是怎么使用

xml中

<com.handmark.pulltorefresh.library.PullToRefreshStaggeredGridLayoutandroid:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/mStaggeredGridView" android:scrollbars="none" android:listSelector="@android:color/transparent" android:dividerHeight="0dp" android:divider="#00000000" android:cacheColorHint="#00000000" android:layout_margin="@dimen/DIMEN_30PX"> </com.handmark.pulltorefresh.library.PullToRefreshStaggeredGridLayout>

java 代码就不想贴了,会recycleview 和 pulltorefresh的都知道怎么弄了。

pulltorefresh+recycleview 实现的瀑布流(带下拉刷新,上拉加载更多)相关推荐

  1. uni-app下拉刷新触底加载更多

    首先在pages.json 配置文件中配置    "enablePullDownRefresh": true  需要在哪用加载就配置在路由的style里 两个事件 //下拉刷新 o ...

  2. recyclerview的数据刷新(下拉刷新和自动加载更多)以及添加提示语(例如:“数据已加载完毕”)

    下拉加载更多的核心是SwipeRefreshLayout搭配Recyclerview进行使用.布局为 <android.support.v4.widget.SwipeRefreshLayout ...

  3. Android 下拉刷新上拉载入 多种应用场景 超级大放送(上)

    转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉载入,网上的Demo太多太多了,这 ...

  4. Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)

    转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉加载,网上的Demo太多太多了,这 ...

  5. Android ListView 实现下拉刷新上拉加载

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/39965327 1.简介 无疑,在Android开发中,ListView是使用非常频 ...

  6. Flutter开发之ListView下拉刷新上拉加载更多(35)

    在Flutter开发之ListView组件(21) 文章中,我们了解了ListView组件的基本使用.但是数据比较少,没有涉及分页加载.而实际开发中,下拉刷新和分页加载几乎是所有APP的标配.在iOS ...

  7. (仿头条APP项目)6.点击过的新闻列表文字变灰和下拉刷新与滚动加载新闻数据

    文章目录 一.点击过的新闻列表文字变灰 效果图 实现思路 导入ormlite数据库类依赖 利用ormlite创建数据库和表 创建数据库类MyDbHelper 创建数据库中的新闻实体类NewInfo 页 ...

  8. 下拉加载 实现 java_[Java教程]iscroll5实现一个下拉刷新上拉加载的效果

    [Java教程]iscroll5实现一个下拉刷新上拉加载的效果 0 2016-08-24 15:00:08 直接上代码!!! * { margin: 0; padding: 0; } ul, li { ...

  9. 小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法

    当父组件引用了子组件的时候,会遇到父组件执行子组件的方法,比如下拉刷新上拉加载等事件只有在页面中才能检测到,但是获取数据的方法在子组件,这时就可以执行子组件方法. 思路很简单,类似于vue中给子组件加 ...

  10. 分享轮子-flutter下拉刷新上拉加载

    flutter下拉上拉组件轮子 什么是flutter? 首先说下flutter,估计这个应该挺多人没听过flutter这个框架,它是一个google推出的跨平台的移动应用UI框架,和React Nat ...

最新文章

  1. leetcode算法题--二叉树中和为某一值的路径
  2. 夏季防暑降温小常识汇总 - 生活至上,美容至尚!
  3. 【转】SAP Fiori Design Guidelines基础篇
  4. java queue使用_使用Java使用Amazon Simple Queue Service
  5. android 访问服务器sql_XSS 攻击、CSRF 攻击、SQL 注入、流量劫持(DNS 劫持、HTTP 劫持)—— 浏览器安全
  6. 【java】java 新一代垃圾回收器ZGC的探索与实践
  7. 【Antlr】Antler 解析 没有进入 visit 相关方法中 一个愚蠢的问题
  8. 【论文阅读】自然语言模型的尺度法则(CS224N WINTER 2022 Lecture17 推荐阅读整理)
  9. java集合转字符串 字符串转集合 StringUtils 一个强大的字符串操作工具
  10. javascript 操作coolie
  11. java jsp聊天系统_jsp 在线客服聊天源码(websocket)
  12. android 解析接收数据格式,Android JSON数据格式解析
  13. android 智能识别名片,小程序云开发实战:实现 AI 智能名片识别小程序
  14. SpringCloud2020 学习笔记(十五)Spring Cloud Eureka 自我保护机制 关闭
  15. 大连理工大学21年软件学院考研情况 学硕一志愿不足需要调剂!专硕录取平均分接近400!
  16. Bottle 中文文档
  17. Android面试题收录及解答10月刊
  18. 【笔记】KMeans聚类算法
  19. 程序员工作多年才存够100W,不想再做程序员,想回乡下老家
  20. 守护永恒服务器维护,3月27日0点-9点停服维护公告客户端更新

热门文章

  1. HTML5不支持createtouch,新手写createjs时容易遇到的坑(持续更新)
  2. 读书笔记:人工智能基础(高中版)
  3. smb连接错误“请检查服务器名称或IP地址,然后再试一次,如果问题持续发生,请联系系统管理员“
  4. C51单片机-串行口2-蓝牙模块-应用例程
  5. Fragment嵌套Fragment
  6. PYTHON PLUS 原神——星辉兑换“宗室武器”的总体暴击率提升度算法
  7. Python实现网络爬虫,爬关键词“武汉”的百度新闻
  8. BERT: 理解上下文的语言模型
  9. 初中数学老师计算机培训反思,初中数学老师考试反思
  10. 【网络时间同步】基于马尔科夫随机场最大后验估计和Gardner环的无线传感器网络时间同步算法matlab仿真