热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

这篇文章主要介绍了Diycode开源项目实例搭建上拉加载和下拉刷新的Fragment以及相关的代码分享。

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

1.效果预览

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

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

1.2.整体结构

首先底层的是BaseFragment

然后RefreshRecyclerFragment继承了BaseFragment

然后SimpleRefreshRecycleFragment继承了RefreshRecyclerFragment

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

2.最基础的BaseFragment

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

ViewHolder用作View管理

Config用作配置状态信息

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

DataCache是一个缓冲器

2.2.onCreate函数,完成初始化

Config是获取单例。

Diycode也是获取单例。 

DataCache是新建一个类。

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

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

2.4.获得本类中的ViewHolder

2.5.实现onCreateView

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

然后返回的是一个View。

2.6.实现抽象函数initViews

2.7.复写onActivityCreated

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

2.8.提示函数toast

2.9.来一张Fragment的生命周期

所以这里的执行顺序是:

OnCreate==>OnCreateView==>onActivityCreate

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

onCreateView作用:得到ViewHolder。

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

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

3.1.继承方式

名称:RefreshRecyclerFragment>>

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

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

3.2.请求状态

3.3.当前状态

3.4.分页加载

3.5.视图

SwipeRefreshLayout==>旋转的加载圈

RecyclerView==>ListView类型的,列表

3.6.状态

3.7.适配器

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

FooterProvider:底部的内容提供器

3.8.实现BaseFragment的getLayoutId方法

3.9.fragment_refresh_recycler.xml

实际上是这个东西

3.10.初始化视图

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


推荐阅读
  • 本文介绍了Tomcat的基本操作,包括启动、关闭及首次访问的方法,并详细讲解了如何在IDEA中创建Web项目,配置Servlet及其映射,以及如何将项目部署到Tomcat。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 问题概述:在本地环境中代码运行正常,但部署到服务器后出现错误。具体表现为NCManager和SAXBuilder无法解析为类型。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • Canopy环境安装与使用指南
    《利用Python进行数据分析》一书推荐使用EPDFree版本的环境,然而随着技术的发展,目前更多人倾向于使用Canopy。本文将详细介绍Canopy的安装及使用方法。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文探讨了如何将Python对象转换为字节流,以实现文件保存、数据库存储或网络传输的需求。主要介绍了利用pickle模块进行序列化的具体方法。 ... [详细]
  • 处理Android EditText中数字输入与parseInt方法
    本文探讨了如何在Android应用中从EditText组件安全地获取并解析用户输入的数字,特别是用于设置端口号的情况。通过示例代码和异常处理策略,展示了有效的方法来避免因非法输入导致的应用崩溃。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 使用TabActivity实现Android顶部选项卡功能
    本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ... [详细]
author-avatar
遗留下的痛cc-x_393
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有