首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Jetpack系列 之分页库Paging3(一)

前言 许久没有更新Jetpack系列的文章了,本篇文章为大家分享分页库Paging3的使用,如果你还没有看过我Jetpack其他的文章,可以移步至链接: Android JetPack系列文章 ,持续更新中...Kotlin语言并且使用了协程和Flow,所以也需要添加协程的库如下: implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:...Paging在架构中的使用图 ?...通过上图我们也可以清晰的看出来,Paging在仓库层、ViewModel和UI层都有具体的表现,接下来我们通过一个示例来逐步讲解Paging是如何在项目架构中工作的。...API接口准备 API接口我们使用 「鸿洋」大佬 「玩Android」中的查询每日一问接口 :https://wanandroid.com/wenda/list/1/json 这里我们已经写好了RetrofitService

4.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Jetpack 系列之Paging3,看这一篇就够了~

    前言 许久没有更新Jetpack系列的文章了,本篇文章为大家分享分页库Paging3的使用,如果你还没有看过我Jetpack其他的文章,可以移步至链接: Android JetPack系列文章 ,持续更新中...Kotlin语言并且使用了协程和Flow,所以也需要添加协程的库如下: implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:...通过上图我们也可以清晰的看出来,Paging在仓库层、ViewModel和UI层都有具体的表现,接下来我们通过一个示例来逐步讲解Paging是如何在项目架构中工作的。...API接口准备 API接口我们使用 「鸿洋」大佬 「玩Android」中的查询每日一问接口 :https://wanandroid.com/wenda/list/1/json 这里我们已经写好了RetrofitService...} 在viewmodel中我们定义了一个getData的方法,Pager中通过配置PagingConfig来实现特殊的定制,我们来看下PagingConfig中的参数如下: pageSize:定义从

    3.5K10

    Jetpack 系列之Paging3,看这一篇就够了~

    前言 许久没有更新Jetpack系列的文章了,本篇文章为大家分享分页库Paging3的使用,如果你还没有看过我Jetpack其他的文章,可以移步至链接: Android JetPack系列文章 ,持续更新中...Kotlin语言并且使用了协程和Flow,所以也需要添加协程的库如下: implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:...Paging在架构中的使用图 通过上图我们也可以清晰的看出来,Paging在仓库层、ViewModel和UI层都有具体的表现,接下来我们通过一个示例来逐步讲解Paging是如何在项目架构中工作的。...API接口准备 API接口我们使用 「鸿洋」大佬 「玩Android」中的查询每日一问接口 :https://wanandroid.com/wenda/list/1/json 这里我们已经写好了RetrofitService...} 在viewmodel中我们定义了一个getData的方法,Pager中通过配置PagingConfig来实现特殊的定制,我们来看下PagingConfig中的参数如下: pageSize:定义从

    2K20

    Spring Boot + Android 实现登录功能

    本篇博客将详细介绍如何使用 Spring Boot 和 Android 实现一个完整的登录功能,从后端 API 的构建到 Android 端的交互,旨在为读者提供一套完整的解决方案。1....而 AuthResponse 是服务器返回的响应对象,包含生成的 JWT。4. Android 前端开发接下来,我们将在 Android 中实现登录页面,并与 Spring Boot 后端进行交互。...4.1 使用 Retrofit 进行网络请求Retrofit 是 Android 平台上广泛使用的网络请求库。首先,我们定义一个接口用于请求登录 API。...如果登录成功,我们将获取到服务器返回的 JWT 并将其存储在 SharedPreferences 中,以便在后续的请求中使用该 Token 进行身份验证。...从用户模型的设计、Spring Security 的配置、JWT 的集成,到 Android 客户端的登录页面实现、网络请求和 Token 管理,涵盖了从后端到前端的所有关键步骤。

    18110

    Android Jetpack架构组件(九)之Paging

    [在这里插入图片描述] 如上图所示,主要的步骤如下: 使用DataSource从服务器获取或者从本地数据库获取数据。 将数据保存到PageList中。...PagedListAdapter 众所周知,在Android列表开发中需要使用RecyclerView,并且需要配合自定义Adapter。...开发中,数据通常来源于网路,我们可以使用retrofit完成网络数据的请求。...在获取数据之前,我们需要先新建一个数据实体类,主要用来存储获取的数据,如下所示是使用干货集中营的开源 Api 的数据的实体类。...对象都对应一个数据源,以及该如何从该数据源中查找数据,PagingSource可以从任何单个数据源比如网络或者数据库中查找数据。

    3.6K20

    「2020 新手必备 」极速入门 Retrofit + OkHttp 网络框架到实战,这一篇就够了!

    它通过基于 REST 的 web 服务检索和上传 JSON (或其他结构化数据)变得相对容易。在使用中,您可以配置用于数据序列化的转换器。...在 app module 下的 build.gradle 中添加以下依赖: // OkHttp3 api 'com.squareup.okhttp3:okhttp:3.10.0' api 'com.squareup.okio...:okio:1.8.0' // Retrofit api 'com.squareup.retrofit2:retrofit:2.7.0' // Gson 服务器数据交互 api 'com.google.code.gson...对象,我们还需要在其中提取相应 JSON 对象,进行类型转换,而在 Retrofit 中,由于使用了数据解析器,所以这一大块代码都省略了 还有很多优点,这里就不唠叨了,我们直接开始学习使用之路吧!...登录功能实战 到这里想必大家都已经学会了 Retrofit 的使用 那么现在我就拿登录功能举例,看看如何在项目中引用 Retrofit 实战部分先置条件是 MVP + ButterKnife,大家很容易在网上找到资料

    1.3K30

    Android使用Flow检测版本升级自动下载安装

    《学习|Android检测并自动下载安装包(Kotlin)》以前这篇用的AsyncTask的方式下载过,现在AsyncTask慢慢废弃了,所以本篇也是初学Flow后的第一次体验使用。...# 整体介绍 1 网络通讯用的retrofit2 2 类的JSON用的GSON 3 下载时的状态显示更新用的kotlin Flow,这也是我第一次用Flow排坑也用了些时间,不过使用起来确实感觉简单好多...封装类 一个retrofitAPIManager类,基于retrofit2的http通讯类,这个是很久前用JAVA写的,就直接复制过来了 package dem.vaccae.autoupgradedemo.net...,存放检测版本和下载文件的两个API package dem.vaccae.autoupgradedemo.net import okhttp3.ResponseBody import retrofit2...,直接启动Download的Activity页面进行下载。

    1K30

    kotlin--综合运用Hilt、Paging3、Flow、Room、Retrofit、Coil等实现MVVM架构

    前面我们使用Java来运用JetPack中的一系列组件,又使用kotlin运用这些组件实现了一系列功能: kotlin--Flow文件下载 kotlin--Flow结合Room运用 kotlin--Flow...结合retrofit运用 kotlin--StateFlow运用 kotlin--SharedFlow运用 接着,Jetpack的Paging3中,我们使用的语言是kotlin,相信通过这些项目的对比,...Retrofit封装一个网络模块,需要对该模块使用Module注解和InstallIn注解绑定到对应Android类的生命周期,显然整个APP运行过程中,我们都要使用网络模块,所以选择绑定Application...1.根据接口和接口返回的json数据,分别创建API和实体类 api地址:ikds.do?...(): Flow> } 实现类,使用MovieItemModel作为泛型类型,并返回Pager的Flow: class MovieRepositoryImpl( private

    3.6K31

    在Compose中使用Paging分页库

    前言 大约在两年前,写了一篇Jetpack 系列之Paging3,看这一篇就够了~,本篇文章主要来看,在Compose中如何使用Paging3,这里不得不说一句,在xml中使用Paging3和在Compose...中使用仅有UI层代码不同,所以之前定义的接口层、仓库层直接复用直接的代码即可。...Paging3的使用 项目搭建 首先,我们新建项目,在build.gradle中引入compose的paging库,这里将网络请求等依赖库一并引入。...接口准备 API接口我们使用 「鸿洋」大佬 「玩Android」中的查询每日一问接口 :https://wanandroid.com/wenda/list/1/json 这里我们已经写好了RetrofitService...getRefreshKey getRefreshKey方法意思是 refresh时,从最后请求的页面开始请求,null则请求第一页。

    1.7K30

    看到如此多的MVP+Dagger2+Retrofit+Rxjava项目,轻松拿star,心动了吗?

    Wiki 文档第一章 开发准备 的所有内容, 快速并且零错误) 一键生成 MVP, Dagger2 相关类 (使用此 页面级 模板可直接生成 Wiki 文档第二章 快速开始 的所有内容, 快速并且零错误...意见收集 扩展项目, 了解一下: MVPArms 官方组件化方案 ArmsComponent 改造 Android 官方架构组件 ViewModel 一行代码监听 App 中所有网络链接的上传以及下载进度..., 以及 Glide 加载进度 以最简洁的 Api 让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl 特性 通用框架, 适合所有类型的项目, 支持大型项目的开发, 兼容组件化开发...图片加载类 ImageLoader 使用策略模式和建造者模式, 轻松切换图片加载框架, 方便功能扩展 网络请求日志打印封装(提供解析后的服务器的请求信息和服务器的响应信息, 按可自定义的任意格式输出打印日志...,这里可以稍微粗力度的定义MVP类,即无需每个Fragment和Activity(每个页面)都定义不同的MVP类,可以按照相同的业务逻辑使用一组MVP类 2.4.1

    2.9K30

    MVPArms MVP快速集成框架

    Logo 前言 今年的Android技术圈中MVP,Dagger2,Rxjava,Retrofit这些词汇非常火,随便打开一个技术论坛都充斥着大量的关于这些技术的文章,Github也充斥着各种以基于MVP...MVPArms是一个集成了大量Android主流框架,并且全部使用Dagger2管理,以及提供API将所有库连接起来方便使用,还提供详细的Wiki文档....对于一个新的Android项目,特别是熟练使用Dagger2和Rxjava的开发者,你们只需要将此项目Clone下来,Demo只实现了一个页面,将此页面删除掉,添加所需要的Retrofit API,你的框架就搭建好了...Wiki 文档第一章 开发准备 的所有内容, 快速并且零错误) 一键生成 MVP, Dagger2 相关类 (使用此 页面级 模板可直接生成 Wiki 文档第二章 快速开始 的所有内容, 快速并且零错误..., 以及 Glide 加载进度 以最简洁的 Api 让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl Feature 通用框架, 适合所有类型的项目, 支持大型项目的开发

    3.4K1815

    Android MVI框架搭建与使用

    MVI框架搭建与使用 前言 正文 一、创建项目 ① 配置AndroidManifest.xml ② 配置app的build.gradle 二、网络请求 ① 生成数据类 ② 接口类 ③ 网络请求工具类...application标签中配置它,如图所示:   从Android 9.0起,默认使用https进行网络访问,如果要进行http访问则需要添加这个配置。...包,model包下我们可以通过刚才使用网页访问API拿到的JSON数据来生成一个数据类。...已经被移除了,在之前的版本中是过时弃用,在最新的版本中你都找不到这个API了,所以使用ViewModelProvider(),然后通过ViewModelFactory去创建对应的MainViewModel...,从UI页面出发,最终回到UI页面中进行数据渲染,我们看看效果。

    3.5K40

    Android面试题含答案「建议收藏」

    (java类被编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据 3、常量池已被修改为只使用32位的索引,以 简化解释器...使用场景如新闻类或者阅读类App的内容页面。 singleTask 模式 如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的 onNewIntent() )。...如果栈中不存在该实例,将会创建新的实例放入栈中。使用场景如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。...漏洞产生原因是:当JS拿到Android这个对象后,就可以调用这个Android对象中所有的方法,包括系统类(java.lang.Runtime 类),从而进行任意代码执行。...8、HTTP链接的特点 HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。 从建立连接到关闭连接的过程称为“一次连接”。

    1.4K20

    Android开发笔记:Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架

    xml、json、text等等 总的来说就是易使用、易扩展、可读性高 一、目的 背景 市场上现在存在的网络请求不在少数,从原生的HttpClient 到 OkHttp、Volley、xUtils 无疑都是将网络请求简单化...后面出现Retrofit ,将OkHttp3 进行了封装,将请求API 接口化,将返回的数据结合GSON等各种转换器转换为直接面向开发的对象,大大的提升了我们的开发效率,为了解决Android UI/子线程...其中ViewModel - LiveData 已经得到了广大开发者的认可,ViewModel 和LiveData 的结合,使得Android中数据可控性变得更好,耦合度更低,简单来说是官方将观察者模式用于到了真个数据结构中...= Resource(Status.LOADING, data, null) } } 2.3 使用Retrofit 创建API 接口、接口帮助类 将接口管理和请求放在不同的类文件中,方便管理 API...Demo中 API 接口类调用辅助类 class ApiHelper(private val apiService: ApiService) { suspend fun getGirls()

    2.3K30

    Android常见面试题

    (java类被编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据 3、常量池已被修改为只使用32位的索引,以 简化解释器...使用场景如新闻类或者阅读类App的内容页面。 singleTask 模式 如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的 onNewIntent() )。...如果栈中不存在该实例,将会创建新的实例放入栈中。使用场景如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。...漏洞产生原因是:当JS拿到Android这个对象后,就可以调用这个Android对象中所有的方法,包括系统类(java.lang.Runtime 类),从而进行任意代码执行。...、 OKhttp:Android开发中是可以直接使用现成的api进行网络请求的。就是使用HttpClient,HttpUrlConnection进行操作。

    1.2K10

    Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)

    前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢...使用介绍 使用 Retrofit 的步骤共有7个: 步骤1:添加Retrofit库的依赖 步骤2:创建 接收服务器返回数据 的类 步骤3:创建 用于描述网络请求 的接口 步骤4:创建 Retrofit...@Body 作用:以 Post方式 传递 自定义数据类型 给服务器 特别注意:如果提交的是一个Map,那么作用相当于 @Field 不过Map要经过 FormBody.Builder 类处理成为符合...关于网络请求适配器(CallAdapter) Retrofit支持多种网络请求适配器方式:guava、Java8和rxjava 使用时如使用的是 Android 默认的 CallAdapter,则不需要添加网络请求适配器的依赖...Retrofit 的拓展使用 Retrofit的使用场景非常丰富,如支持RxJava和Prototocobuff 具体设置也非常简单 & 方便: Retrofit对象中设置 --> Retrofit

    3.6K20
    领券