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

以下通过3个知识点给大家讲解了上拉加载和下拉刷新的Fragment实现的方法,在对每个知识点介绍了一下用法。

1.效果预览

1.1.这个首页就是一个Fragment碎片,本文讲述的就是这个碎片的搭建方式。

a710146e929e5c02a75c1206d1b9658b.gif

下拉会有一个旋转的刷新圈,上拉会刷新数据。

1.2.整体结构

首先底层的是BaseFragment

然后RefreshRecyclerFragment继承了BaseFragment

然后SimpleRefreshRecycleFragment继承了RefreshRecyclerFragment

所以应用类的话只要继承SimpleRefreshRecycleFragment就可以了。

2.最基础的BaseFragment

2.1.首先看一下有哪些成员变量

042a72534a1f4440907715377f00f89e.png

ViewHolder用作View管理

Config用作配置状态信息

Diycode是本项目的一个在线服务器

DataCache是一个缓冲器

2.2.onCreate函数,完成初始化

b90aec74e5606e91bea1dc40927c9b15.png

Config是获取单例。

Diycode也是获取单例。

DataCache是新建一个类。

2.3.定义获取布局id的抽象函数

b4785f02d916805dd24e6ab03fbe33c0.png

继承者中就要实现这个函数了。

2.4.获得本类中的ViewHolder

7bf5ea17f89e9f3ee74c44f57b8ba3f5.png

2.5.实现onCreateView

6ac6ddbae75c8f2481c7f2b81f876cfa.png

新建的ViewHolder其实已经用了一个getLayoutId()方法,这里调用的是本类的抽象函数。

然后返回的是一个View。

2.6.实现抽象函数initViews

e4e6dc2a904c2684edc40eb875978739.png

2.7.复写onActivityCreated

848d70a2239c2a301f7552bd09e120ff.png

实现了间接调用抽象函数。

2.8.提示函数toast

55c610e5d80701acb96631d3b0636545.png

2.9.来一张Fragment的生命周期

2704ef6221de8efb9f2b9155808368c6.png

所以这里的执行顺序是:

onCreate==>onCreateView==>onActivityCreate

onCreate作用:初始化配置和Diycode单例和数据缓存器新建。

onCreateView作用:得到ViewHolder。

onActivityCreate作用:实现一个抽象函数initViews,用来给基类来实现。

3.具有下拉刷新和上拉加载的Fragment

3.1.继承方式

dbe5700f75304edbf8366e8fcb254744.png

名称:RefreshRecyclerFragment>>

b8e973647f9a54692335e123426779a0.png

一个类中有两个参数,像这样

a8e159e860d2adb0206d505bc6013e5f.png

所以本类构造函数也需要两个参数,一个是T,一个是继承BaseEvent>的类

3.2.请求状态

7df231103663b87b0762657687a63e70.png

3.3.当前状态

276b12bdf53be56af58721071ddc015c.png

3.4.分页加载

19810173d3d428c4a4f1d43a1c3be856.png

3.5.视图

f3d92ce72cd4e721e10d983818b7eca0.png

SwipeRefreshLayout==>旋转的加载圈

RecyclerView==>ListView类型的,列表

3.6.状态

6982caa8ae03483950e749562c684de0.png

3.7.适配器

fe638038276a7837d6dc5513771eed97.png

HeaderFooterAdapter:带有头部和底部的适配器

FooterProvider:底部的内容提供器

1b0b2ad4c679b29d56a3635647183020.png

3.8.实现BaseFragment的getLayoutId方法

88a688291945a0932447e5446dda7a88.png

3.9.fragment_refresh_recycler.xml

4595260fbb9ede9735912e1369c79d08.png

实际上是这个东西

11edaa216eacf4cbdf51c92d3ac749f6.png

3.10.初始化视图

f3b43e5ffa5c03ae7d73d16e41b4d398.png

在BaseFragment中执行最后面的一个函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值