TwinklingRefreshLayout框件的简单使用
githup地址:https://github.com/lcodecorex/TwinklingRefreshLayout
介绍:
支持下拉刷新和上拉加载的RefreshLayout,自带越界回弹效果,支持RecyclerView,AbsListView,ScrollView,WebView
![](https://img.haomeiwen.com/i1912584/1bc709985791b965.gif)
使用方法
1.添加gradle依赖
将libray模块复制到项目中*,或者直接在build.gradle中依赖:
compile 'com.lcodecorex:tkrefreshlayout:1.0.7'
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_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>
3.在Activity或者Fragment中配置
TwinklingRefreshLayout不会自动结束刷新或者加载更多,需要手动控制
图片素材
![](https://img.haomeiwen.com/i1912584/836c573d69f0d36c.png)
refreshLayout = (TwinklingRefreshLayout) findViewById(R.id.refreshLayout);
//下拉刷新头部view设置
SinaRefreshView headerView = new SinaRefreshView(this);
headerView.setArrowResource(R.drawable.arrow);
refreshLayout.setHeaderView(headerView);
//上拉加载底部view设置
LoadingView loadingView = new LoadingView(this);
refreshLayout.setBottomView(loadingView);
//下拉刷新上拉加载事件监听
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()方法。(会自动执行RefreshListenerAdapter监听事件中的onRefresh()/onLoadMore())
4.一些属性的介绍
setWaveHeight、setHeaderHeight、setBottomHeight、setOverScrollHeight
setWaveHeight 设置头部可拉伸的最大高度。
setHeaderHeight 头部固定高度(在此高度上显示刷新状态)
setBottomHeight 底部高度
setOverScrollHeight 设置最大的越界高度
setEnableRefresh、setEnableLoadmore
灵活的设置是否禁用上下拉。
setHeaderView(IHeaderView headerView)、setBottomView(IBottomView bottomView)
设置头部/底部个性化刷新效果,头部需要实现IHeaderView,底部需要实现IBottomView。
setEnableOverScroll
是否允许越界回弹。
setOverScrollTopShow、setOverScrollBottomShow、setOverScrollRefreshShow
是否允许在越界的时候显示刷新控件,默认是允许的,也就是Fling越界的时候Header或Footer照常显示,反之就是不显示;可能有特殊的情况,刷新控件会影响显示体验才设立了这个状态。
setPureScrollModeOn()
开启纯净的越界回弹模式,也就是所有刷新相关的View都不显示,只显示越界回弹效果
setAutoLoadMore
是否在底部越界的时候自动切换到加载更多模式
addFixedExHeader
添加一个固定在顶部的Header(效果还需要优化)
startRefresh、startLoadMore、finishRefreshing、finishLoadmore、setFloatRefresh(boolean)
支持切换到像SwipeRefreshLayout一样的悬浮刷新模式了。
5.扩展属性
tr_max_head_height 头部拉伸允许的最大高度
tr_head_height 头部高度
tr_max_bottom_height 底部拉伸允许的最大高度
tr_bottom_height 底部高度
tr_overscroll_height 允许越界的最大高度
tr_enable_refresh 是否允许刷新,默认为true
tr_enable_loadmore 是否允许加载更多,默认为true
tr_pureScrollMode_on 是否开启纯净的越界回弹模式
tr_overscroll_top_show - 否允许顶部越界时显示顶部View
tr_overscroll_bottom_show 是否允许底部越界时显示底部View
tr_enable_overscroll 是否允许越界回弹
tr_floatRefresh 开启悬浮刷新模式
tr_autoLoadMore 越界时自动加载更多
tr_enable_keepIView 是否在开始刷新之后保持状态,默认为true;若需要保持原来的操作逻辑,这里设置为false即可
tr_showRefreshingWhenOverScroll 越界时直接显示正在刷新中的头部
tr_showLoadingWhenOverScroll 越界时直接显示正在加载更多中的底部
网友评论