为了引入分页,我不得不将PagedList
类视为域类。(IMO并不是一个可怕的想法,因为最终是一个列表,并且数据源是抽象的)
因此,在域层中,我可以有一个类似的repository:
interface ItemRepository {
fun getItems():PagedList<Item>
}
class ItemRepositoryImpl: ItemRepositoy(private val factory:ItemDataSourceFavtory) {
fun getItems():PagedList<Item> {
val pageConfigurations = PagedList.Config.Builder()
.setPageSize(10)
.setInitialLoadSizeHint(15)
.setPrefetchDistance(5)
.setEnablePlaceholders(false)
.build()
return RxPagedListBuilder(locationDataSourceFactory, pageConfigurations)
.setInitialLoadKey(1)
.buildObservable()
}
Im awareDatasourceFactory
具有Map
和MapBypage
方法,但工厂驻留在数据层中。我的Viewmodel使用来自模型层的数据,在本例中,模型层是pagedlist
,据我所知,分页列表不支持映射。
那么在这种情况下应该做什么呢?
您不能将PagedList
映射到表示模型,因为PagedListAdapter
需要PagedList
来加载下一页/上一页。
PagedList有两个主要功能:第一,它是一个数据结构,用来保存分页(部分存在和部分不存在)的项目的列表
。使用snapshot()
可以很容易地获取当前项目,将域模型映射到表示模型中,并传递给ListAdapter以显示项目列表。
其次,当需要更多页面时,它必须警告datasource
。PagedListAdapter
接收PagedList
,绑定项时,它根据PagedList
的LoadAround()
方法检测何时需要新页。
我能够从赫尔辛基MOOC课程中弄清楚这个项目,但我认为有一种更干净、更容易阅读的方式来写它。目标是打印出:
问题内容: 我找不到确切的答案。据我所知,类中不能有多个功能。那么我该如何解决这个问题呢? 假设我有一个Cheese用属性调用的类。我如何有两种创建奶酪对象的方式… 有很多这样的漏洞: 还有一个不带参数而只是随机化属性的参数: 我只能想到一种执行此操作的方法,但这似乎很笨拙: 你说什么?还有另一种方法吗? 问题答案: 对于“魔术”值,实际上要好得多: 现在,如果你想完全自由地添加更多参数: 为了更
TLDR:由于UserNotFound错误(未找到的用户来自旧安装),我无法使用空数据目录启动Mongo的干净安装(从ZIP)。 更详细地说:我最初的Mongo数据库运行良好。出于测试目的,我移动了当前的数据目录,并创建了一个新目录。所以我停止了运行Windows服务 创建一个新的数据目录并尝试在noauth模式下启动一个新的MongoDB 麻烦就从这里开始了:MongoDB试图从我的旧数据库中连
问题内容: 我已经使用以下命令从Docker文件构建了一个Docker映像。 当我尝试使用同一命令重建它时,它正在使用构建缓存,例如: 缓存显示已安装Aerospike。但是,我在从该图像生成的容器中找不到它,因此我想在不使用缓存的情况下重建该图像。如何强制Docker在没有缓存的情况下重建干净的映像? 问题答案: 有一个选项: 在较旧的Docker版本中,您需要通过,但情况不再如此。
我是Android Studio的新手,所以我面临一些问题。我正在寻找一种如何干净地项目的方法。 在Eclipse中,我会做<代码>项目-
问题内容: 当您使用很多术语时,以下语句看起来非常混乱: 有没有一种更干净的方式来执行相同的操作,我希望我的代码尽可能可读。 注意:x,y和z只是任何长度的任何字符串的占位符。如果条件中的每个条件进行或运算,则此处可能有20个长度可变的字符串术语 问题答案: Set stuff = new HashSet (); stuff.add(“x”); stuff.add(“y”); stuff.add(