TwinklingRefreshLayout框件的簡(jiǎn)單使用
githup地址:https://github.com/lcodecorex/TwinklingRefreshLayout
介紹:
支持下拉刷新和上拉加載的RefreshLayout,自帶越界回彈效果萎胰,支持RecyclerView,AbsListView,ScrollView,WebView
使用方法
1.添加gradle依賴(lài)
將libray模塊復(fù)制到項(xiàng)目中*,或者直接在build.gradle中依賴(lài):
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.在A(yíng)ctivity或者Fragment中配置
TwinklingRefreshLayout不會(huì)自動(dòng)結(jié)束刷新或者加載更多,需要手動(dòng)控制
圖片素材
refreshLayout = (TwinklingRefreshLayout) findViewById(R.id.refreshLayout);
//下拉刷新頭部view設(shè)置
SinaRefreshView headerView = new SinaRefreshView(this);
headerView.setArrowResource(R.drawable.arrow);
refreshLayout.setHeaderView(headerView);
//上拉加載底部view設(shè)置
LoadingView loadingView = new LoadingView(this);
refreshLayout.setBottomView(loadingView);
//下拉刷新上拉加載事件監(jiān)聽(tīng)
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()方法結(jié)束刷新棚辽,finishLoadmore()方法結(jié)束加載更多技竟。此處OnRefreshListener還有其它方法,可以選擇需要的來(lái)重寫(xiě)屈藐。
如果你想進(jìn)入到界面的時(shí)候主動(dòng)調(diào)用下刷新榔组,可以調(diào)用startRefresh()/startLoadmore()方法熙尉。(會(huì)自動(dòng)執(zhí)行RefreshListenerAdapter監(jiān)聽(tīng)事件中的onRefresh()/onLoadMore())
4.一些屬性的介紹
setWaveHeight、setHeaderHeight搓扯、setBottomHeight检痰、setOverScrollHeight
setWaveHeight 設(shè)置頭部可拉伸的最大高度。
setHeaderHeight 頭部固定高度(在此高度上顯示刷新?tīng)顟B(tài))
setBottomHeight 底部高度
setOverScrollHeight 設(shè)置最大的越界高度
setEnableRefresh锨推、setEnableLoadmore
靈活的設(shè)置是否禁用上下拉铅歼。
setHeaderView(IHeaderView headerView)、setBottomView(IBottomView bottomView)
設(shè)置頭部/底部個(gè)性化刷新效果爱态,頭部需要實(shí)現(xiàn)IHeaderView谭贪,底部需要實(shí)現(xiàn)IBottomView。
setEnableOverScroll
是否允許越界回彈锦担。
setOverScrollTopShow俭识、setOverScrollBottomShow、setOverScrollRefreshShow
是否允許在越界的時(shí)候顯示刷新控件洞渔,默認(rèn)是允許的套媚,也就是Fling越界的時(shí)候Header或Footer照常顯示,反之就是不顯示磁椒;可能有特殊的情況堤瘤,刷新控件會(huì)影響顯示體驗(yàn)才設(shè)立了這個(gè)狀態(tài)。
setPureScrollModeOn()
開(kāi)啟純凈的越界回彈模式浆熔,也就是所有刷新相關(guān)的View都不顯示本辐,只顯示越界回彈效果
setAutoLoadMore
是否在底部越界的時(shí)候自動(dòng)切換到加載更多模式
addFixedExHeader
添加一個(gè)固定在頂部的Header(效果還需要優(yōu)化)
startRefresh、startLoadMore医增、finishRefreshing慎皱、finishLoadmore、setFloatRefresh(boolean)
支持切換到像SwipeRefreshLayout一樣的懸浮刷新模式了叶骨。
5.擴(kuò)展屬性
tr_max_head_height 頭部拉伸允許的最大高度
tr_head_height 頭部高度
tr_max_bottom_height 底部拉伸允許的最大高度
tr_bottom_height 底部高度
tr_overscroll_height 允許越界的最大高度
tr_enable_refresh 是否允許刷新,默認(rèn)為true
tr_enable_loadmore 是否允許加載更多,默認(rèn)為true
tr_pureScrollMode_on 是否開(kāi)啟純凈的越界回彈模式
tr_overscroll_top_show - 否允許頂部越界時(shí)顯示頂部View
tr_overscroll_bottom_show 是否允許底部越界時(shí)顯示底部View
tr_enable_overscroll 是否允許越界回彈
tr_floatRefresh 開(kāi)啟懸浮刷新模式
tr_autoLoadMore 越界時(shí)自動(dòng)加載更多
tr_enable_keepIView 是否在開(kāi)始刷新之后保持狀態(tài)茫多,默認(rèn)為true;若需要保持原來(lái)的操作邏輯忽刽,這里設(shè)置為false即可
tr_showRefreshingWhenOverScroll 越界時(shí)直接顯示正在刷新中的頭部
tr_showLoadingWhenOverScroll 越界時(shí)直接顯示正在加載更多中的底部