智能下拉刷新框架-SmartRefreshLayout.docx
《智能下拉刷新框架-SmartRefreshLayout.docx》由会员分享,可在线阅读,更多相关《智能下拉刷新框架-SmartRefreshLayout.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、框架如果你看完了效果图,或许框架的意思应该有所了解了SmartRefreshLayout对下拉刷新功能进行系统的拆分、组合,主要由四个 局部组成: Refresh Layout下拉的基本功能,包括布局测量、滑动事件处 理、参数设定等等RefreshContent对不同内容的统一封装,包括判断是否可滚动、回弹判断、智能识别RefreshHeader下拉头部的实现和显示 RefreshFooter上拉底部的实现和显示F面是UML关系类图android: scaleType=,zcenterCropzzandroid: src=/,mipmap/gif_header_repast/z/在Androi
2、d Studio中的预览效果图和运行效果图 700 700化满牛肉粉破酥包期你回来盐菜饭米豆腐哈哈!一行Java代码都不用写,就完成了一个自定义的Header哈哈!一行Java代码都不用写,就完成了一个自定义的Header嵌套Layout作为内容如果boos要求在列表的前面如果boos要求在列表的前面定一个广告条怎么办?这好办呀般我们会开开心心的下下这样的代码:LinearLayoutandroid:orientation=vertical但是在运行下拉刷新的时候,我们发现Header是在广告条之下的,看着会别 扭 ,其实我们可以试试另一种方式,把广告条写到RefreshLayout内部,看看
3、会发生什么?LinearLayoutandroid:orientation=vertical”由于伪代码过于简单,而且运行效果过于丑陋,这里还是贴出在实际工程中的实际情况吧Photos MowingO Frederik Hensen6 球博列表扑 正梅硼fi6书博列表winter farewell12 kS nter Newell21 44Steffen Nocqaard Andersenlorwn ipeum dolor trt amet. eooMCtw apton9 cH ted do emsmod lempof mcxdunt ut hbort M dkx* m*Qna *(ua m
4、ntm ad rnanim wnnmn. Md doemttnod quit noetfud eiEMiooSteffen Nor93d AndersenLortm 8M dolor M amM. coctMdeur Xipisc5g .儿 do eaitmod ttmpor mod,我们注意看右边的图,仔细观察手指触摸的位置和下拉效果。可以看到在列表已经滚动到中部时,轻微下拉列表是不会触发刷新的,但是如果是触摸固定的布局,那么可以触发下拉。从这里可以看出SmartRefreshLayout对滚动边界 的判断是动态的,智能的!当然如果SmartRefreshLayout的智能还是不能 满足你,
5、可以通过setListener自己实现滚动边界的判断,更为准确!功能简单的介绍了两大特点框架和智能,接下来也说说SmartRefreshLayout还具 有的其他常用功能吧支持所有的 View ( AbsListView、RecyclerViewxWebView.View )和多层嵌套的 Layout支持自定义并且已经集成了很多炫酷的Header和Footer 支持和ListView的同步滚动和RecyclerView、AppBarLayout、CoordinatorLayout 的嵌套滚动 NestedScrolling. 支持在Android Studio Xml编辑器中预览 效果支持分别
6、在Default (默认)、XmL JavaCode等三个地方设置 Header 和 Footer. 支持自动刷新、自动上拉加载(自动检测列表滚动到底部,而不用 手动上拉). 支持通用的刷新监听器OnRefreshListener和更详细的滚动监听 OnMultiPurposeListener. 支持自定义回弹动画的插值器,实现各种炫酷的动画效果. 支持设置主题来适配任何场景的App ,不会出现炫酷但很尴尬的 情况. 支持设置多种滑动方式来适配各种效果的Header和Footer:位 置平移、尺寸拉伸、背后固定、顶层固定、全屏支持内容尺寸自适应Content-wrap_content 支持继承
7、重写和扩展功能,内部实现没有private方法和字段,继承之后都可以重写覆盖 支持越界回弹(Listview、RecyclerViewx ScrollViewxWebView.View )使用简单用例1 .在buld.gradle中添加依赖compile com. scwang. smartrefresh:SmartRefreshLayout:1. 0. 1compile com. scwang. smartrefresh:SmartRefreshHeader: 1. 0. T /如果使用了特殊的 He ader.在XML布局文件中添加SmartRefreshLayout.在Activity或
8、者Fragment中添加代码RefreshLayout refreshLayout = (RefreshLayout)findViewById(R. id. refreshLayout);r efreshLayout. setOnRefreshListener(new OnRefreshListener() Overridepublic void onRefresh(RefreshLayout refreshlayout) refreshlayout, finishRefresh(2000););refreshLayout. setOnLoadmoreListener(new OnLoadmo
9、reListener() Overridepublic void onLoadmore(SmartRefreshLayout refreshlayout) refreshlayout. finishLoadmore(2000););使用指定的Header和FooterL方法一全局设置设置全局的Header构建器SmartRefreshLayout. setDefaultRefreshHeaderCreater(new DefaultRefreshHeaderCreat er () Overridepublic RefreshHeader createRefreshHeader(Context
10、context, RefreshLayout layout) return new ClassicsHeader (context);指定为经典 Header,默认是 贝塞 尔雷达Header);设置全局的Footer构建器SmartRefreshLayout. setDefaultRefreshFooterCreater(new DefaultRefreshFooterCreat er () Overridepublic RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) return new Cl
11、assicsFooter (context);指定为经典 Footer,默认是 Ball PulseFooter);注意:方法一设置的Header和Footer的优先级是最低的,如果同时还使用了方法二、三,将会被其他方法取代2.方法二XML布局文件指定!一srlEnablePreviewInEditMode可以开启和关闭预览功能一!一FixedBehind可以让Header固定在内容的背后,下拉的时候效果同微信浏览器的 效果一注意:方法二XML设置的Header和Footer的优先级是中等的,会被方法三覆盖。而且使用本方法的时候,Android Studio会有预览效果,如下列图: 700正在
12、刷新JUHB9&MHad&fOFM let ff冲万密 *防1 中配.在霜襄”用将物的HuhUhi4特用配眄而用丹帕可以使用 . 一 *7|点;. _1可惧在AndmdShJde小的传位sr 口网员效W2优先5M8千【全葡中41自足子C lnvaCadt?!ccontMw 3ng wnitrlfefiesh heWei ClassiciHeadet android layoutpnrcnlnndr oid!ayout.heignt=nipoonient/“/torn 3cwimg umai ftelmh Smai 惘 eheshlzy wle上拉加式更多不过不用担忧,只是预览效果,运行的时候只
13、有下拉才会出现3.方法三Java代码设置final RefreshLayout refreshLayout = (RefreshLayout) findViewById(R. id. smartLayo ut); 设置 Header 为 Material refreshLayout. setRefreshHeader (new MaterialHe ader (this). setShowBezierWave (true) ;/设置 Footer 为 球月永7中 refreshLayout. setRe freshFooter(new BallPulseFooter(this). setSpi
14、nnerStyle(SpinnerStyle. Scale);属性 Attributes名称格式描述srlPrimaryColorcolor主题颜色srlAccentColorcolor强调颜色srlReboundDurationinteger释放后回弹动画时长srlHeaderHeightdimensionHeader的标准高度srlFooterHeightdimensionFooter的标准高度srlDragRatefloat显示拖动高度/真实拖动高度(默认(srlHeaderMaxDragRatefloatHeader最大拖动高度/Header标准高srlFooterMaxDragRat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 下拉 刷新 框架 SmartRefreshLayout
限制150内