当前位置: 首页 > 知识库问答 >
问题:

Java/Kotlin模块内部的Jetpack分页3

穆鸿卓
2023-03-14

我正在开发一个具有干净架构原则的应用程序。我有一个domain模块,它是一个Java/Kotlin模块,它不依赖于android;还有一个domainimpl模块,它是一个android模块,它依赖于localremotedomain模块。这是模块中的存储库示例:

interface MovieRepository {
    fun getMovie(id: Long): Flow<Movie>
}

下面的代码是它在domainimpl模块中的实现:

class MovieRepositoryImpl(
    private val movieApi: MovieApi
) : MovieRepository {

    override fun getMovie(id: Long): Flow<Movie> = flow {
        emit(movieApi.getMovie(id))
    }

}

这种情况下一切正常。但现在我正在尝试为我的分页添加Android Paging3。因此,我必须向MovieRepository接口添加一个方法,如下所示:

fun getMovies(): Flow<PagingData<Movie>>

但在此之前,我必须将分页库添加到我的domain模块中,但不幸的是,它是一个android库,我找不到它的核心依赖项。那我该怎么做呢?因此我必须将我的domain模块更改为android模块吗?还是有其他变通办法?

共有1个答案

黄修永
2023-03-14

分页的非android组件在AndroidX中。分页:paging-common-根据定义,对演示器API的任何依赖都是android特定的,因此与recyclerviewlazycolumn等相关的任何代码都需要是android特定的。

然而,PagingSourcePagingDataPagerRemoteEditator都是由Paging-Common提供的,因此这些类的实现,包括转换链和Flow 的整体输出可以完全不依赖Android。

 类似资料:
  • 内部类 Object Array Values (ruby 1.9 特性) Binding Continuation Data Exception (参考异常类) Dir FalseClass File::Stat Hash IO File MatchData Method (UnboundMethod) (ruby 1.7 特性version 1.6以前的位置) Module Class Num

  • 问题内容: 我正在Kotlin中开发一个Android 密码库。我有几个类在Java应用程序中公开可见。在文档中找到了这一点。 声明成为Java。类的成员会经历名称重整,以使其更难从Java中意外使用它们,并允许重载具有相同签名但根据Kotlin规则彼此不可见的成员。 有办法解决这个问题吗? 问题答案: 我已经看到您所有的内部类都涉及加密和解密。 您可以通过定义一个顶级函数并将其标记为 ,然后将E

  • 问题内容: 如果存在Kotlin语言,可以用什么替代方法?如果没有,当我需要在Kotlin中使用时如何解决此问题?请参见下面的代码示例: 我搜索了很多东西,没有发现任何东西,非常感谢。 问题答案: 只需在Kotlin中省略。 内部类(持有对外部对象的引用) Java: 科特林: 静态内部类又称为嵌套类(不引用外部对象) Java: 科特林:

  • 获取内容分类详情 接口 GET https://cloud.minapp.com/userve/v1/content/:content_group_id/category/:category_id/ 其中 content_group_id 是内容库的 ID, category_id 是内容分类的 ID 代码示例 var axios = require('axios').create({ wit

  • 获取内容分类详情 接口 GET https://cloud.minapp.com/oserve/v1/content/:content_group_id/category/:category_id/ 其中 content_group_id 是内容库的 ID, category_id 是内容分类的 ID 代码示例 {% tabs getContentCategoryCurl=”Curl”, getC

  • 问题内容: 如何从该模块中获取对模块的引用?另外,如何获得包含该模块的包装的参考? 问题答案: