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

作者:laozhang 时间:2023-06-17 01:13:03 

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

1.效果预览

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

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

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

1.2.整体结构

首先底层的是BaseFragment

然后RefreshRecyclerFragment继承了BaseFragment

然后SimpleRefreshRecycleFragment继承了RefreshRecyclerFragment

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

2.最基础的BaseFragment

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

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

ViewHolder用作View管理

Config用作配置状态信息

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

DataCache是一个缓冲器

2.2.onCreate函数,完成初始化

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

Config是获取单例。

Diycode也是获取单例。

DataCache是新建一个类。

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

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

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

2.4.获得本类中的ViewHolder

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

2.5.实现onCreateView

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

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

然后返回的是一个View。

2.6.实现抽象函数initViews

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

2.7.复写onActivityCreated

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

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

2.8.提示函数toast

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

2.9.来一张Fragment的生命周期

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

所以这里的执行顺序是:

onCreate==>onCreateView==>onActivityCreate

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

onCreateView作用:得到ViewHolder。

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

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

3.1.继承方式

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

名称:RefreshRecyclerFragment<T,Event extends BaseEvent<List<T>>>

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

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

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

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

3.2.请求状态

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

3.3.当前状态

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

3.4.分页加载

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

3.5.视图

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

SwipeRefreshLayout==>旋转的加载圈

RecyclerView==>ListView类型的,列表

3.6.状态

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

3.7.适配器

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

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

FooterProvider:底部的内容提供器

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

3.8.实现BaseFragment的getLayoutId方法

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

3.9.fragment_refresh_recycler.xml

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

实际上是这个东西

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

3.10.初始化视图

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

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

标签:Diycode,上拉加载,下拉刷新,Fragment
0
投稿

猜你喜欢

  • Unity3D绘制地形的实现方法

    2022-12-01 01:06:46
  • 详解Java七大阻塞队列之SynchronousQueue

    2023-12-16 04:21:30
  • Java用三元运算符判断奇数和偶数的简单实现

    2023-07-24 16:54:03
  • java数据结构基础:单链表与双向链表

    2023-03-02 09:21:59
  • Java中关键字synchronized的使用方法详解

    2022-04-14 06:18:54
  • java定义受限制的类型参数操作

    2022-12-16 09:44:03
  • 全面解析Android应用开发中Activity类的用法

    2022-03-11 00:48:53
  • Springboot 扫描mapper接口的2种操作

    2022-08-04 03:28:54
  • C#数值转换-显式数值转换表(参考)

    2023-05-26 22:26:15
  • Java map存放数组并取出值代码详解

    2023-06-27 23:32:18
  • Android中volley封装实践记录

    2021-07-05 19:55:03
  • Android获取RecyclerView滑动距离方法详细讲解

    2021-07-04 23:21:32
  • Android 中ListView的Item点击事件失效的快速解决方法

    2021-09-29 02:00:41
  • 浅谈Android硬件加速原理与实现简介

    2022-04-20 14:11:36
  • android开发教程之自定义控件checkbox的样式示例

    2023-10-23 13:33:55
  • Java中Optional的正确用法与争议点详解

    2023-11-12 03:50:21
  • Java基础之Stream流原理与用法详解

    2021-06-07 22:16:05
  • spring声明式事务解析

    2022-01-16 11:29:47
  • C# 将 Stream 保存到文件的方法

    2021-10-13 12:47:59
  • springboot之端口设置和contextpath的配置方式

    2023-10-05 14:16:20
  • asp之家 软件编程 m.aspxhome.com