相信很多小伙伴们在项目实战中,经常会用到界面的分页显示
、加载更多
等功能。需要针对具体功能做针对性开发和调试,耗时耗力。
Paging组件的使用将这部分的工作简化,从而让开发者更专注于业务的具体实现。下面我们一起来学习下Paging组件的使用方法。
首先来看下使用Paging组件实现的分页加载和刷新效果:
下面我们针对这两个使用Paging组件的例子进行分析。
数据库读取分页加载示例中,数据一次性获取完成,界面分页显示,按需加载数据,减少了内存资源的使用
网络端分页请求数据,每次请求固定长度的数据信息进行显示,减少网络带宽的使用
Paging功能的实现用到了Room组件,Room也是Jetpack库的一部分,在SQLite上提供了一个抽象层,为开发者提供了流畅的SQLite数据库访问体验。
Room简介
Room组件包含三个主要组成部分:
数据库
其应该满足四个条件:
- 含有@Database注解
- 是一个继承自RoomDatabase的抽象类
- 注解内包含实体的列表信息
- 包含一个返回带@Dao注解类的无参方法
数据实体
表示数据库中表
DAO
包含用于访问数据库的方法
应用程序使用Room组件获取与数据库关联的数据访问对象或DAO,然后获取实体,将实体的所有更改同步到数据库。Room三个部分之间的关系如下图:
Paging的基本使用方法
Paging组件支持三种不同数据结构:
- 仅从网络获取
- 仅从设备数据库获取
- 两种数据来源的组合,使用设备数据库作为缓存
下面我们以仅从设备数据库获取的方式来了解下Paging分页的基本使用方法。
环境配置
首先需要在模块build.gradle中添加对应库支持。
dependencies {
versions.room = "2.1.0-alpha06"
versions