android-Ultra-Pull-To-Refresh 使用简介
2016-07-27 16:15
267 查看
项目地址https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh该项目只包含下拉刷新,可以包裹任何控件,如果需要添加上拉加载,可以将包裹的view改为前篇文章的LoadMoreRecyclerView实现上拉加载功能。引入方法1:直接导入lib库:ptr-lib,可到项目地址下载,然后将lib添加到项目
compile project(':ptr-lib')
方法2:中央库依赖compile 'in.srain.cube:ultra-ptr:1.0.11'
配置[align=left]有6个参数可配置:[/align][align=left]阻尼系数[/align][align=left]默认: 1.7f,越大,感觉下拉时越吃力。[/align][align=left]触发刷新时移动的位置比例[/align][align=left]默认,1.2f,移动达到头部高度1.2倍时可触发刷新操作。[/align][align=left]回弹延时[/align][align=left]默认 200ms,回弹到刷新高度所用时间[/align][align=left]头部回弹时间[/align][align=left]默认1000ms[/align][align=left]刷新是保持头部[/align][align=left]默认值 true.[/align][align=left]下拉刷新 / 释放刷新[/align][align=left]默认为释放刷新[/align]
<in.srain.cube.views.ptr.PtrFrameLayout android:id="@+id/store_house_ptr_frame" xmlns:cube_ptr="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" cube_ptr:ptr_resistance="1.7" cube_ptr:ptr_ratio_of_header_height_to_refresh="1.2" cube_ptr:ptr_duration_to_close="300" cube_ptr:ptr_duration_to_close_header="2000" cube_ptr:ptr_keep_header_when_refresh="true" cube_ptr:ptr_pull_to_fresh="false" > <LinearLayout android:id="@+id/store_house_ptr_image_content" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/cube_mints_333333" android:clickable="true" android:padding="10dp"> <in.srain.cube.image.CubeImageView android:id="@+id/store_house_ptr_image" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> </in.srain.cube.views.ptr.PtrFrameLayout>也可以在代码中配置
// the following are default settings mPtrFrame.setResistance(1.7f); mPtrFrame.setRatioOfHeaderHeightToRefresh(1.2f); mPtrFrame.setDurationToClose(200); mPtrFrame.setDurationToCloseHeader(1000); // default is false mPtrFrame.setPullToRefresh(false); // default is true mPtrFrame.setKeepHeaderWhenRefresh(true);
刷新时,保持内容不动,仅头部下移, setPinContent()下拉刷新功能接口,对下拉刷新功能的抽象,包含以下两个方法。
public void onRefreshBegin(final PtrFrameLayout frame)刷新回调函数,用户在这里写自己的刷新功能实现,处理业务数据的刷新。
public boolean checkCanDoRefresh(final PtrFrameLayout frame, final View content, final View header)判断是否可以下拉刷新。 UltraPTR 的 Content 可以包含任何内容,用户在这里判断决定是否可以下拉。例如,如果 Content 是 TextView,则可以直接返回 true,表示可以下拉刷新。如果 Content 是 ListView,当第一条在顶部时返回 true,表示可以下拉刷新。如果 Content 是 ScrollView,当滑动到顶部时返回 true,表示可以刷新。案例示例:此段代码在设置了rvView(RecycleView)相关配置之后之后进行设置即可,
mPtrFrame.setPtrHandler(new PtrHandler() {@Overridepublic void onRefreshBegin(PtrFrameLayout frame) {// currentPage = 1;// mPresenter.start(currentPage,type);mPtrFrame.refreshComplete();if(currentPage==1){mDataList.clear();}mDataList.addAll(entity.getNewslist());mAdapter.notifyDataSetChanged();}@Overridepublic boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {return PtrDefaultHandler.checkContentCanBePulledDown(frame, content, header);}});mPtrFrame.setResistance(1.7f);mPtrFrame.setRatioOfHeaderHeightToRefresh(1.2f);mPtrFrame.setDurationToClose(200);mPtrFrame.setDurationToCloseHeader(1000);// default is falsemPtrFrame.setPullToRefresh(false);// default is truemPtrFrame.setKeepHeaderWhenRefresh(true);mPtrFrame.postDelayed(new Runnable() {@Overridepublic void run() {mPtrFrame.autoRefresh();}}, 100);
相关文章推荐
- 在AndroidStudio中集成Genymotion模拟器
- Android 蓝牙开发1
- 用Android Studio打Jar包
- android版本更新
- android:maxLines和android:ellipsize
- 简单实现Android搜索功能 显示清除历史搜索记录
- 关于android串口通信
- Android 魅族手机ListView 下拉出现HOLD字样
- Android学习第二天 apk里面的文件属性介绍
- Android应用程序的启动过程源码解析—点击图标启动过程
- 《Android 编程权威指南》读书总结
- 深入理解android自定义属性(AttributeSet,TypedArray)
- android studio找不到Subversion
- Android样式的开发:shape篇
- 高手速成android开源项目【View篇】
- Android 设置应用程序的主题颜色
- Android源码编译详解【四】:Android 6.0_源码的下载与编译
- RelativeLayout常用属性介绍
- Android : 破解apk
- 新手Android学习笔记 06——自定义控件的单击事件