Jetpack系列:Paging组件帮你解决分页加载实现的痛苦

相信很多小伙伴们在项目实战中,经常会用到界面的分页显示加载更多等功能。需要针对具体功能做针对性开发和调试,耗时耗力。

Paging组件的使用将这部分的工作简化,从而让开发者更专注于业务的具体实现。下面我们一起来学习下Paging组件的使用方法。


首先来看下使用Paging组件实现的分页加载和刷新效果:

分页加载


数据库读取分页加载


请求数据


网络端分页请求数据

下面我们针对这两个使用Paging组件的例子进行分析。

数据库读取分页加载示例中,数据一次性获取完成,界面分页显示,按需加载数据,减少了内存资源的使用
网络端分页请求数据,每次请求固定长度的数据信息进行显示,减少网络带宽的使用

Paging功能的实现用到了Room组件,Room也是Jetpack库的一部分,在SQLite上提供了一个抽象层,为开发者提供了流畅的SQLite数据库访问体验。

Room简介

Room组件包含三个主要组成部分:

数据库

其应该满足四个条件:

  1. 含有@Database注解
  2. 是一个继承自RoomDatabase的抽象类
  3. 注解内包含实体的列表信息
  4. 包含一个返回带@Dao注解类的无参方法

数据实体

表示数据库中表

DAO

包含用于访问数据库的方法

应用程序使用Room组件获取与数据库关联的数据访问对象或DAO,然后获取实体,将实体的所有更改同步到数据库。Room三个部分之间的关系如下图:

Room架构图


Room架构图(引自官方文档)

Paging的基本使用方法

Paging组件支持三种不同数据结构:

  • 仅从网络获取
  • 仅从设备数据库获取
  • 两种数据来源的组合,使用设备数据库作为缓存

Paging支持数据架构


分页库支持数据架构(引自官方文档)

下面我们以仅从设备数据库获取的方式来了解下Paging分页的基本使用方法。

环境配置

首先需要在模块build.gradle中添加对应库支持。

dependencies {
    versions.room = "2.1.0-alpha06"
    versions
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值