SuperSwipeRefreshLayout

一个功能强大的自己定义下拉刷新组件。

Why?

下拉刷新这样的控件。想必大家用的太多了,比方使用非常多的XListView等。

近期。项目中非常多列表都是使用ReyclerView实现的。取代了原有的ListView,原有下拉刷新方式遭到挑战。本来Google推出的SwipeRefreshLayout已经能够满足大部分的需求了。

然而,因为其定制性较差。下拉刷新的样式无法改动。并且被嵌套的View也无法尾随手指的滑动而滑动。基于以上考虑,定制自己强大的SuperSwipeRefreshLayout。

Feature

  • 非侵入式。对原来的ListView、RecyclerView没有不论什么影响,使用方法和SwipeRefreshLayout相似。

  • 可自己定义头部View的样式。调用setHeaderView方法就可以
  • 支持很多其它:RecyclerView,ListView,ScrollView。GridView等等。

  • 被包括的View(RecyclerView,ListView etc.)可尾随手指的滑动而滑动

    默认是尾随手指的滑动而滑动。也能够设置为不尾随:setTargetScrollWithLayout(false)
  • 回调方法很多其它

    比方:onRefresh() onPullDistance(int distance)和onPullEnable(boolean enable)

    开发者能够依据下拉过程中distance的值做一系列动画。

How to use

step 1

<net.mobctrl.views.SuperSwipeRefreshLayout
android:id="@+id/swipe_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent" > <android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</net.mobctrl.views.SuperSwipeRefreshLayout>

step 2


swipeRefreshLayout = (SuperSwipeRefreshLayout) findViewById(R.id.swipe_refresh);
swipeRefreshLayout.setHeaderView(createHeaderView());// add headerView
swipeRefreshLayout
.setOnPullRefreshListener(new OnPullRefreshListener() { @Override
public void onRefresh() {
//TODO 開始刷新
} @Override
public void onPullDistance(int distance) {
//TODO 下拉距离
} @Override
public void onPullEnable(boolean enable) {
//TODO 下拉过程中,下拉的距离是否足够出发刷新
}
});

step 3

  • create your header view
swipeRefreshLayout.setHeaderView(createHeaderView());// add headerView

/**
* create Header View
*/
private View createHeaderView(){
//TODO 创建下拉刷新头部的View样式
}

跟手滑动设置

  • setTargetScrollWithLayout(false/true);//default true
swipeRefreshLayout.setTargetScrollWithLayout(true);

Support View

  • RecyclerView.
  • ListView
  • SrcollView
  • GridView
  • etc.

Demo

效果

兴许

如有必要,能够添加上拉载入很多其它的功能。

源代码:

Github https://github.com/nuptboyzhb/SuperSwipeRefreshLayout

源代码分析

兴许有时间更新

SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件的更多相关文章

  1. 分享一个discuz touch端的jQuery下拉刷新组件

    在线Demo 最近装了个discuz论坛, 趣股VIP吧,发现里面内置的jQuery上拉刷新组件写得还行,STATICURL可以用'http://o9gzet7tk.bkt.clouddn.com/i ...

  2. Android内置下拉刷新组件SwipeRefreshLayout

    也许下拉刷新之前,你可能会使用一些第三方的开源库,例如PullToRefresh, ActionBar-PullToRefresh等待,但现在有的正式组成部分---SwipeRefreshLayout ...

  3. Android之SwipeRefreshLayout下拉刷新组件

    SwipeRefreshLayout概述 SwipeRefrshLayout是Google官方更新的一个Widget,可以实现下拉刷新的效果.该控件集成自ViewGroup在support-v4兼容包 ...

  4. 打造通用的Android下拉刷新组件(适用于ListView、GridView等各类View)

    前言 近期在做项目时,使用了一个开源的下拉刷新ListView组件.极其的不稳定,bug还多.稳定的组件又写得太复杂了,jar包较大.在我的一篇博客中也讲述过下拉刷新的实现,即Android打造(Li ...

  5. Google自己的下拉刷新组件SwipeRefreshLayout

    SwipeRefreshLayout SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support librar ...

  6. Google官方下拉刷新组件---SwipeRefreshLayout

    今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下. SwipeRefreshL ...

  7. 基于better-scroll封装一个上拉加载下拉刷新组件

    1.起因 上拉加载和下拉刷新在移动端项目中是很常见的需求,遂自己便基于better-scroll封装了一个下拉刷新上拉加载组件. 2.过程 better-scroll是目前比较好用的开源滚动库,提供很 ...

  8. 一个简单的适用于Vue的下拉刷新,触底加载组件

    一个简单的适用于Vue的上拉刷新,触底加载组件,没有发布npm需要时直接粘贴定制修改即可 <template> <div class="list-warp-template ...

  9. android——官方下拉刷新组件SwipeRefreshLayout(转)

    一.问题描述 在android开发中,使用最多的数据刷新方式就是下拉刷新了,而完成此功能我们使用最多的就是第三方的开源库PullToRefresh.现如今,google也忍不住推出了自己的下拉组件Sw ...

随机推荐

  1. jQuery学习笔记(1)-初探

    一.jQuery是什么 1.jQuery是一套JavaScript脚本库,而不是框架:就好比"System是程序集"是类库,而"ASP.NET MVC"是框架: ...

  2. Echarts修改legend样式

    legend: { icon: 'rect', itemWidth: 20, itemHeight: 10, itemGap: 10}

  3. Java线程及Jvm监控工具

    Java线程状态 线程的五种状态 * 新建:new(时间很短) * 运行:runnable * 等待:waitting(无限期等待),timed waitting(限期等待) * 阻塞:blocked ...

  4. 我的DBDA类

    <?php class DBDA { public $host="localhost"; public $uid="root"; public $pwd= ...

  5. Microsoft SQL Server学习(三)

    1.表:表示一个实体(客观存在的事物或抽象时间),可实现对实体的数据描述和数据操作. 2.表结构:二位平面(行.列) 3.数据类型: 类型名称 类型 整形 bit(只存储0.1) samllint i ...

  6. Fiddler——基本常识

    web session界面 inspector面板 xml:查看XML数据 json:查看json数据 raw:可以完整查看请求的内容 cookies:可以查看请求的cookie header:查看请 ...

  7. vs2017 创建C#类时添加文件头

    C#类模板地址:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\C ...

  8. Microsoft SQL Server 存储过程

    Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...

  9. 继 S-HR之代码创建临时表并插入数据 完整功能之员工职业信息变更报表

    目的示例1: 制作员工职业信息报表[S-HR系统的报表其实就是列表o.0,醉了] EcirrWithPP.js shr.defineClass("shr.custom.EcirrWithPP ...

  10. 关于MD5解密网站。www.cmd5.com

    第一次听说这个网站,本人的名字居然也能够被解密,而且还是需要付费取得明文! 大家知道,md5加密是我们常用的加密方式,这个加密方式的好处在于不可逆.而且任何环境下算出的密文应该都是相同的,所以在大家登 ...