gpt4 book ai didi

android-paging - 使用 PagedListAdapter 时对数组项进行排序?

转载 作者:行者123 更新时间:2023-12-04 06:48:13 28 4
gpt4 key购买 nike

我正在使用 Paging library .

目前,我想按 PagedListAdapter 中的描述对项目进行排序(使用 SortList ),但我还没有想出如何去做。

使用 PagedListAdapter 时如何对元素进行排序?
谢谢你。

最佳答案

我也遇到了这个问题,很惊讶 PagedList似乎没有一种直接的方法来对项目进行排序。以下是我如何使用 DataSource's mapByPage() 达到我需要的效果:

/** sorts MyItems by timestamp in descending order */
private fun DataSource.Factory<Long, MyItem>.sortByDescTime(): DataSource.Factory<Long, MyItem> {
return mapByPage {
myItemsList.sortedWith(compareByDescending { item -> item.timeStamp })
}
}

mapByPage()的输入应该是您的排序功能(取决于您的设置,我的使用 Kotlin 扩展和 lambda 语法对目标列表中的项目进行排序 - 使用 Collections.sortedWith() )

然后,在数据源上使用我的扩展功能对获取的项目进行排序:
fun fetchItems(userId: Long): LiveData<PagedList<MyItem>> {
val itemDataSource = itemAPIService.getItems(userId).sortByDescTime()
val itemPagedList = LivePagedListBuilder(itemDataSource, 10).build()
return itemPagedList
}

关于android-paging - 使用 PagedListAdapter 时对数组项进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51320874/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com