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

源代码分析

兴许有时间更新

最新文章

  1. C++笔记(1)explicit构造函数
  2. What Is Mathematics?
  3. JavaScript 的性能优化:加载和执行
  4. jquery 清除动画队列不疑惑
  5. css 命名规范
  6. poj 1845 数论综合
  7. 一段代码了解Java中char和int的转换
  8. 华东师大OJ:IP Address【IP地址转换】
  9. window.location.search
  10. python Aspscheduler 定时任务框架使用
  11. Linux远程自动输入密码抓取远程资源
  12. 应该知道的Linux技巧
  13. Android运用自己的标题栏
  14. cout、cerr、clog
  15. CSS之定位布局(position,定位布局技巧)
  16. 安卓两个build.gradle的区别
  17. 大数据基础篇(一):联机分析处理(OLAP) 与 联机事务处理(OLTP)
  18. 使用VideoView实现简单视频播放器
  19. Python字典的一点用法
  20. 腾讯云部署javaWeb项目之一应用服务器

热门文章

  1. DecorView 的创建
  2. Java常见问题总结(二)
  3. Django基础之数据库增删改查
  4. 【C++】智能指针简述(二):auto_ptr
  5. treetable adding nodes at root level
  6. 用Java实现在【520,1314】之间生成随机整数的故事
  7. RESTful API设计的简单例子
  8. JAVA学习笔记16——线程生命周期
  9. WebBrowser之获取跳转页面的Document接口源码
  10. Oracle 数据库启动与关闭 各种方式详解整理