随着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