TwinklingRefreshLayout v1.04 版精心重构,优化 UI、刷新及越界动画效果,修复众多 bug,完美发布!
TwinklingRefreshLayout延伸了Google的SwipeRefreshLayout的思想,不在列表控件上动刀,而是使用一个ViewGroup来包含列表控件,以保持其较低的耦合性和较高的通用性。其主要特性有:
支持RecyclerView、ScrollView、AbsListView系列(ListView、GridView)、WebView以及其它可以获取到scrollY的控件
支持加载更多
默认支持 越界回弹,,随手势速度有不同的效果
可开启没有刷新控件的纯净越界回弹模式
setOnRefreshListener中拥有大量可以回调的方法
将Header和Footer抽象成了接口,并回调了滑动过程中的系数,方便实现个性化的Header和Footer
Demo下载Demo
You can download the Video for more details.
使用方法1.添加gradle依赖将libray模块复制到项目中,或者直接在build.gradle中依赖:
compile ‘com.lcodecorex:tkrefreshlayout:1.0.4‘2.在xml中添加TwinklingRefreshLayout<?xml version="1.0" encoding="utf-8"?> <com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:tr_wave_height="180dp" app:tr_head_height="100dp"> <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.lcodecore.library.TwinklingRefreshLayout>Android系统为了跟iOS不一样,当界面OverScroll的时候会显示一个阴影。为了达到更好的显示效果,最好禁用系统的overScroll,如上给RecyclerView添加android:overScrollMode="never"。
3.在Activity或者Fragment中配置TwinklingRefreshLayout不会自动结束刷新或者加载更多,需要手动控制refreshLayout.setOnRefreshListener(new RefreshListenerAdapter(){ @Override public void onRefresh(final TwinklingRefreshLayout refreshLayout) { new Handler().postDelayed(new Runnable() { @Override public void run() { refreshLayout.finishRefreshing(); } },2000); } @Override public void onLoadMore(final TwinklingRefreshLayout refreshLayout) { new Handler().postDelayed(new Runnable() { @Override public void run() { refreshLayout.finishLoadmore(); } },2000); } }); }使用finishRefreshing()方法结束刷新,finishLoadmore()方法结束加载更多。此处OnRefreshListener还有其它方法,可以选择需要的来重写。
如果你想进入到界面的时候主动调用下刷新,可以调用startRefresh()/startLoadmore()方法。
setWaveHeight、setHeaderHeight、setBottomHeight、setOverScrollHeightsetWaveHeight 设置头部可拉伸的最大高度。
setHeaderHeight 头部固定高度(在此高度上显示刷新状态)
setBottomHeight 底部高度
setOverScrollHeight 设置最大的越界高度
setEnableRefresh、setEnableLoadmore灵活的设置是否禁用上下拉。
setHeaderView(IHeaderView headerView)、setBottomView(IBottomView bottomView)设置头部/底部个性化刷新效果,头部需要实现IHeaderView,底部需要实现IBottomView。
setEnableOverScroll是否允许越界回弹。
setOverScrollTopShow、setOverScrollBottomShow、setOverScrollRefreshShow