SmartRefreshLayout---“智能”下拉刷新布局
2017-09-15 11:24
483 查看
项目中用到下拉刷新的频率可以说非常高,今天总结一下自己项目中用到的下拉刷新的点。
结合RecyclerView使用
自定义Header/Footer
可以在Android Studio Xml 编辑器中预览
compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.1'//如果使用了特殊的Header
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>
结合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.SmartRefreshLayoutandroid: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 |
---|---|---|
srlPrimaryColor | color | 主题颜色 |
srlAccentColor | color | 强调颜色 |
srlReboundDuration | integer | 释放后回弹动画时长 |
srlHeaderHeight | dimension | Header的标准高度 |
srlFooterHeight | dimension | Footer的标准高度 |
srlDragRate | float | 显示拖动高度/真实拖动高度(默认0.5,阻尼效果) |
srlHeaderMaxDragRate | float | Header最大拖动高度/Header标准高度(默认2,要求>=1) |
srlFooterMaxDragRate | float | Footer最大拖动高度/Footer标准高度(默认2,要求>=1) |
srlEnableRefresh | boolean | 是否开启下拉刷新功能(默认true) |
srlEnableLoadmore | boolean | 是否开启加上拉加载功能(默认true) |
srlEnableHeaderTranslationContent | boolean | 拖动Header的时候是否同时拖动内容(默认true) |
srlEnableFooterTranslationContent | boolean | 拖动Footer的时候是否同时拖动内容(默认true) |
srlEnablePreviewInEditMode | boolean | 是否在编辑模式时显示预览效果(默认true) |
srlDisableContentWhenRefresh | boolean | 是否在刷新的时候禁止内容的一切手势操作(默认false) |
srlDisableContentWhenLoading | boolean | 是否在加载的时候禁止内容的一切手势操作(默认false) |
方法 Method
名称-name | 格式-format | 描述-description |
---|---|---|
setPrimaryColors | colors | 主题\强调颜色 |
setPrimaryColorsId | colors | 主题\强调颜色资源Id |
setReboundDuration | integer | 释放后回弹动画时长 |
setHeaderHeight | dimension | Header的标准高度(px/dp 两个版本) |
setFooterHeight | dimension | Footer的标准高度(px/dp 两个版本) |
setDragRate | float | 显示拖动高度/真实拖动高度(默认0.5,阻尼效果) |
setHeaderMaxDragRate | float | Header最大拖动高度/Header标准高度(默认2,要求>=1) |
setFooterMaxDragRate | float | Footer最大拖动高度/Footer标准高度(默认2,要求>=1) |
setEnableRefresh | boolean | 是否开启下拉刷新功能(默认true) |
setEnableLoadmore | boolean | 是否开启加上拉加载功能(默认true) |
setEnableHeaderTranslationContent | boolean | 拖动Header的时候是否同时拖动内容(默认true) |
setEnableFooterTranslationContent | boolean | 拖动Footer的时候是否同时拖动内容(默认true) |
setEnableAutoLoadmore | boolean | 是否监听列表滚动到底部时触发加载事件 |
setDisableContentWhenRefresh | boolean | 是否在刷新的时候禁止内容的一切手势操作(默认false) |
setDisableContentWhenLoading | boolean | 是否在加载的时候禁止内容的一切手势操作(默认false) |
setReboundInterpolator | Interpolator | 设置回弹动画的插值器 |
setRefreshHeader | RefreshHeader | 设置指定的Header |
setRefreshFooter | RefreshFooter | 设置指定的Footer |
setOnRefreshListener | OnRefreshListener | 设置刷新监听器 |
setOnLoadmoreListener | OnLoadmoreListener | 设置加载监听器 |
setOnRefreshLoadmoreListener | OnRefreshLoadmoreListener | 同时设置上面两个监听器 |
setOnMultiPurposeListener | OnMultiPurposeListener | 设置多功能监听器 |
setLoadmoreFinished | boolean | 设置全部数据加载完成,之后不会触发加载事件 |
finishRefresh | (int delayed) | 完成刷新,结束刷新动画 |
finishLoadmore | (int delayed) | 完成加载,结束加载动画 |
getRefreshHeader | RefreshHeader | 获取Header |
getRefreshFooter | RefreshFooter | 获取Footer |
getState | RefreshState | 获取当前状态 |
isRefreshing | boolean | 是否正在刷新 |
isLoading | boolean | 是否正在加载 |
autoRefresh | (int delayed) | 触发自动刷新 |
autoLoadmore | (int delayed) | 触发自动加载 |
相关文章推荐
- Android智能下拉刷新框架—SmartRefreshLayout的使用
- Android智能下拉刷新框架-SmartRefreshLayout
- Android智能下拉刷新框架-SmartRefreshLayout
- Android智能下拉刷新框架-SmartRefreshLayout(收藏笔记)
- Android--智能下拉刷新框架(SmartRefreshLayout)
- Android智能下拉刷新框架-SmartRefreshLayout
- Android智能下拉刷新框架-SmartRefreshLayout
- Android智能下拉刷新框架-SmartRefreshLayout
- Android智能下拉刷新框架-SmartRefreshLayout
- SmartRefreshLayout刷新控件的使用方法 (刷新加载时用GIF动画)
- 使用NestedScrollView+ViewPager+RecyclerView+SmartRefreshLayout打造酷炫下拉视差效果并解决各种滑动冲突
- SmartRefreshLayout 够炫,够cool
- 下拉刷新控件一个很好用的开源项目SmartRefreshLayout
- SmartRefreshLayout的使用
- 下拉刷新、上拉加载SmartRefreshLayout
- SmartRefreshLayout集成笔记,实现下拉刷新上拉加载更多。
- SmartRefreshLayout+CommonAdapter打造上拉加载下拉刷新界面
- SmartRefreshLayout刷新控件
- SmartRefreshLayout
- 最强大的下拉刷新框架_SmartRefreshLayout的基本使用