TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

时间:2021-10-24 05:10:33

TwinklingRefreshLayout v1.04 版精心重构,优化 UI、刷新及越界动画效果,修复众多 bug,完美发布!

TwinklingRefreshLayout延伸了Google的SwipeRefreshLayout的思想,不在列表控件上动刀,而是使用一个ViewGroup来包含列表控件,以保持其较低的耦合性和较高的通用性。其主要特性有:


支持RecyclerView、ScrollView、AbsListView系列(ListView、GridView)、WebView以及其它可以获取到scrollY的控件

支持加载更多

默认支持 越界回弹,,随手势速度有不同的效果

可开启没有刷新控件的纯净越界回弹模式

setOnRefreshListener中拥有大量可以回调的方法

将Header和Footer抽象成了接口,并回调了滑动过程中的系数,方便实现个性化的Header和Footer

TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

Demo

下载Demo

TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

 

TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

 

TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

 

TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

 

TwinklingRefreshLayout 小而强大的刷新控件,自带顺滑的越界回弹,v1.04 版精心重构

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、setOverScrollHeight

setWaveHeight 设置头部可拉伸的最大高度。

setHeaderHeight 头部固定高度(在此高度上显示刷新状态)

setBottomHeight 底部高度

setOverScrollHeight 设置最大的越界高度

setEnableRefresh、setEnableLoadmore

灵活的设置是否禁用上下拉。

setHeaderView(IHeaderView headerView)、setBottomView(IBottomView bottomView)

设置头部/底部个性化刷新效果,头部需要实现IHeaderView,底部需要实现IBottomView。

setEnableOverScroll

是否允许越界回弹。

setOverScrollTopShow、setOverScrollBottomShow、setOverScrollRefreshShow