源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Diycode开源项目实例搭建上拉加载和下拉刷新的Fragment

  • 时间:2020-03-05 04:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Diycode开源项目实例搭建上拉加载和下拉刷新的Fragment
以下通过3个知识点给大家讲解了上拉加载和下拉刷新的Fragment实现的方法,在对每个知识点介绍了一下用法。 [b]1.效果预览[/b] 1.1.这个首页就是一个Fragment碎片,本文讲述的就是这个碎片的搭建方式。 [img]http://files.jb51.net/file_images/article/201711/2017112408374725.gif[/img] 下拉会有一个旋转的刷新圈,上拉会刷新数据。 1.2.整体结构 首先底层的是BaseFragment 然后RefreshRecyclerFragment继承了BaseFragment 然后SimpleRefreshRecycleFragment继承了RefreshRecyclerFragment 所以应用类的话只要继承SimpleRefreshRecycleFragment就可以了。 [b]2.最基础的BaseFragment[/b] 2.1.首先看一下有哪些成员变量 [img]http://files.jb51.net/file_images/article/201711/2017112408374726.png[/img] ViewHolder用作View管理 Config用作配置状态信息 Diycode是本项目的一个在线服务器 DataCache是一个缓冲器 2.2.onCreate函数,完成初始化 [img]http://files.jb51.net/file_images/article/201711/2017112408374827.png[/img] Config是获取单例。 Diycode也是获取单例。  DataCache是新建一个类。 2.3.定义获取布局id的抽象函数 [img]http://files.jb51.net/file_images/article/201711/2017112408374828.png[/img] 继承者中就要实现这个函数了。 2.4.获得本类中的ViewHolder [img]http://files.jb51.net/file_images/article/201711/2017112408374829.png[/img] 2.5.实现onCreateView [img]http://files.jb51.net/file_images/article/201711/2017112408374830.png[/img] 新建的ViewHolder其实已经用了一个getLayoutId()方法,这里调用的是本类的抽象函数。 然后返回的是一个View。 2.6.实现抽象函数initViews [img]http://files.jb51.net/file_images/article/201711/2017112408374831.png[/img] 2.7.复写onActivityCreated [img]http://files.jb51.net/file_images/article/201711/2017112408374832.png[/img] 实现了间接调用抽象函数。 2.8.提示函数toast [img]http://files.jb51.net/file_images/article/201711/2017112408374833.png[/img] 2.9.来一张Fragment的生命周期 [img]http://files.jb51.net/file_images/article/201711/2017112408374834.png[/img] 所以这里的执行顺序是: onCreate==>onCreateView==>onActivityCreate onCreate作用:初始化配置和Diycode单例和数据缓存器新建。 onCreateView作用:得到ViewHolder。 onActivityCreate作用:实现一个抽象函数initViews,用来给基类来实现。 [b]3.具有下拉刷新和上拉加载的Fragment[/b]
3.1.继承方式 [img]http://files.jb51.net/file_images/article/201711/2017112408374835.png[/img] 名称:RefreshRecyclerFragment<T,Event extends BaseEvent<List<T>>> [img]http://files.jb51.net/file_images/article/201711/2017112408374836.png[/img] 一个类中有两个参数,像这样 [img]http://files.jb51.net/file_images/article/201711/2017112408374837.png[/img] 所以本类构造函数也需要两个参数,一个是T,一个是继承BaseEvent<List<T>>的类 3.2.请求状态 [img]http://files.jb51.net/file_images/article/201711/2017112408374838.png[/img] 3.3.当前状态 [img]http://files.jb51.net/file_images/article/201711/2017112408374839.png[/img] 3.4.分页加载 [img]http://files.jb51.net/file_images/article/201711/2017112408374940.png[/img] 3.5.视图 [img]http://files.jb51.net/file_images/article/201711/2017112408374941.png[/img] SwipeRefreshLayout==>旋转的加载圈 RecyclerView==>ListView类型的,列表 3.6.状态 [img]http://files.jb51.net/file_images/article/201711/2017112408374942.png[/img] 3.7.适配器 [img]http://files.jb51.net/file_images/article/201711/2017112408374943.png[/img] HeaderFooterAdapter:带有头部和底部的适配器 FooterProvider:底部的内容提供器 [img]http://files.jb51.net/file_images/article/201711/2017112408374944.png[/img] 3.8.实现BaseFragment的getLayoutId方法 [img]http://files.jb51.net/file_images/article/201711/2017112408374945.png[/img] 3.9.fragment_refresh_recycler.xml [img]http://files.jb51.net/file_images/article/201711/2017112408374946.png[/img] 实际上是这个东西 [img]http://files.jb51.net/file_images/article/201711/2017112408374947.png[/img] 3.10.初始化视图 [img]http://files.jb51.net/file_images/article/201711/2017112408374948.png[/img] 在BaseFragment中执行最后面的一个函数。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部