Android上拉加载下拉刷新库

来源:互联网 发布:mac系统cdr文件下载 编辑:程序博客网 时间:2024/05/18 09:48

随着Android技术的快速更新,界面也变得越来越酷炫,之前的一些应用库已经满足不了现在的需求了,但是新技术的更新也就出了很多新的库,上拉加载下拉刷新这种常用的功能也被设计师玩坏了,让我们这些程序猿也被动起来,一些比较牛的大师们顺应时代,开发出来的库那是相当的好用,也省去了我们这些小公司很多的工时,下面这一个开源库就可以满足我们大部分人的需求:

先看下效果吧:

SmartRefreshLayout是最近刚开源的刷新加载库支持很多刷新动画,更是结合了Google的SwipeRefreshLayout,现在非常流行的 TwinklingRefreshLayout 、android-Ultra-Pull-To-Refresh 等,集众多开源库的优点为一体满足更多的需求:

  • 支持所有的 View(AbsListView、RecyclerView、WebView....View) 和多层嵌套的 Layout(详细);

  • 支持自定义并且已经集成了很多炫酷的 Header 和 Footer (图);

  • 支持和ListView的同步滚动 和 RecyclerView、AppBarLayout、CoordinatorLayout 的嵌套滚动 NestedScrolling;

  • 支持在Android Studio Xml 编辑器中预览 效果(图);

  • 支持分别在 Default(默认)、Xml、JavaCode 三个中设置 Header 和 Footer;

  • 支持自动刷新、自动上拉加载(自动检测列表滚动到底部,而不用手动上拉);

  • 支持通用的刷新监听器 OnRefreshListener 和更详细的滚动监听 OnMultiPurposeListener;

  • 支持自定义回弹动画的插值器,实现各种炫酷的动画效果.

  • 支持设置主题来适配任何场景的 App,不会出现炫酷但很尴尬的情况;

  • 支持设置多种滑动方式来适配各种效果的 Header 和 Footer:平移、拉伸、背后固定、顶层固定、全屏;

  • 支持内容尺寸自适应 Content-wrap_content;

  • 支持继承重写和扩展功能,内部实现没有 private 方法和字段,继承之后都可以重写覆盖;

  • 支持越界回弹(Listview、RecyclerView、ScrollView、WebView...View)。

用法:

导入依赖

compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.2-alpha-7'compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.2-alpha-7'//If you use the special Header

xml中的应用:

<?xml version="1.0" encoding="utf-8"?><com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/refreshLayout"    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.support.v7.widget.RecyclerView        android:id="@+id/recyclerview"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:overScrollMode="never"        android:background="#fff" /></com.scwang.smartrefresh.layout.SmartRefreshLayout>
activity的用法:

RefreshLayout refreshLayout = (RefreshLayout)findViewById(R.id.refreshLayout);refreshLayout.setOnRefreshListener(new OnRefreshListener() {    @Override    public void onRefresh(RefreshLayout refreshlayout) {        refreshlayout.finishRefresh(2000).setSpinnerStyle(SpinnerStyle.Translate);    }});refreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {    @Override    public void onLoadmore(RefreshLayout refreshlayout) {        refreshlayout.finishLoadmore(2000).setSpinnerStyle(SpinnerStyle.Translate);    }} 
想要了解更多,欢迎移步 GitHub 地址:

https://github.com/scwang90/SmartRefreshLayout


原创粉丝点击