您的位置:首页 > 其它

SmartRefreshLayout---“智能”下拉刷新布局

2017-09-15 11:24 483 查看
项目中用到下拉刷新的频率可以说非常高,今天总结一下自己项目中用到的下拉刷新的点。

结合RecyclerView使用
自定义Header/Footer
可以在Android Studio Xml 编辑器中预览

使用:

添加依赖

compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.1'

compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.1'//如果使用了特殊的Header

布局文件

<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:orientation="vertical"
app:srlEnableHeaderTranslationContent="true"
app:srlEnableLoadmore="false">

<cn.reschool.parent.widget.StoreHouseHeader
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/view_bg"
app:shhLineWidth="2dp"
app:shhText="Re School" />

<android.support.v7.widget.RecyclerView
android:id="@+id/list"
android:name="cn.reschool.parent.ui.activity.MomentActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="LinearLayoutManager"
tools:context="cn.reschool.parent.ui.activity.MomentActivity" />

<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>



业务(我的业务中,不进行上拉加载更多)

mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(RefreshLayout refreshlayout) {
requestData();
}
});

mRefreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
@Override
public void onLoadmore(RefreshLayout refreshlayout) {
mRefreshLayout.finishLoadmore(2000);
}
});



属性 Attributes

名称-name格式-format描述-description
srlPrimaryColorcolor主题颜色
srlAccentColorcolor强调颜色
srlReboundDurationinteger释放后回弹动画时长
srlHeaderHeightdimensionHeader的标准高度
srlFooterHeightdimensionFooter的标准高度
srlDragRatefloat显示拖动高度/真实拖动高度(默认0.5,阻尼效果)
srlHeaderMaxDragRatefloatHeader最大拖动高度/Header标准高度(默认2,要求>=1)
srlFooterMaxDragRatefloatFooter最大拖动高度/Footer标准高度(默认2,要求>=1)
srlEnableRefreshboolean是否开启下拉刷新功能(默认true)
srlEnableLoadmoreboolean是否开启加上拉加载功能(默认true)
srlEnableHeaderTranslationContentboolean拖动Header的时候是否同时拖动内容(默认true)
srlEnableFooterTranslationContentboolean拖动Footer的时候是否同时拖动内容(默认true)
srlEnablePreviewInEditModeboolean是否在编辑模式时显示预览效果(默认true)
srlDisableContentWhenRefreshboolean是否在刷新的时候禁止内容的一切手势操作(默认false)
srlDisableContentWhenLoadingboolean是否在加载的时候禁止内容的一切手势操作(默认false)


方法 Method

名称-name格式-format描述-description
setPrimaryColorscolors主题\强调颜色
setPrimaryColorsIdcolors主题\强调颜色资源Id
setReboundDurationinteger释放后回弹动画时长
setHeaderHeightdimensionHeader的标准高度(px/dp 两个版本)
setFooterHeightdimensionFooter的标准高度(px/dp 两个版本)
setDragRatefloat显示拖动高度/真实拖动高度(默认0.5,阻尼效果)
setHeaderMaxDragRatefloatHeader最大拖动高度/Header标准高度(默认2,要求>=1)
setFooterMaxDragRatefloatFooter最大拖动高度/Footer标准高度(默认2,要求>=1)
setEnableRefreshboolean是否开启下拉刷新功能(默认true)
setEnableLoadmoreboolean是否开启加上拉加载功能(默认true)
setEnableHeaderTranslationContentboolean拖动Header的时候是否同时拖动内容(默认true)
setEnableFooterTranslationContentboolean拖动Footer的时候是否同时拖动内容(默认true)
setEnableAutoLoadmoreboolean是否监听列表滚动到底部时触发加载事件
setDisableContentWhenRefreshboolean是否在刷新的时候禁止内容的一切手势操作(默认false)
setDisableContentWhenLoadingboolean是否在加载的时候禁止内容的一切手势操作(默认false)
setReboundInterpolatorInterpolator设置回弹动画的插值器
setRefreshHeaderRefreshHeader设置指定的Header
setRefreshFooterRefreshFooter设置指定的Footer
setOnRefreshListenerOnRefreshListener设置刷新监听器
setOnLoadmoreListenerOnLoadmoreListener设置加载监听器
setOnRefreshLoadmoreListenerOnRefreshLoadmoreListener同时设置上面两个监听器
setOnMultiPurposeListenerOnMultiPurposeListener设置多功能监听器
setLoadmoreFinishedboolean设置全部数据加载完成,之后不会触发加载事件
finishRefresh(int delayed)完成刷新,结束刷新动画
finishLoadmore(int delayed)完成加载,结束加载动画
getRefreshHeaderRefreshHeader获取Header
getRefreshFooterRefreshFooter获取Footer
getStateRefreshState获取当前状态
isRefreshingboolean是否正在刷新
isLoadingboolean是否正在加载
autoRefresh(int delayed)触发自动刷新
autoLoadmore(int delayed)触发自动加载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: