首页 > 解决方案 > 如何从每页项目数和总项目数 API 响应中获取总页数?

问题描述

我正在从删除端点获取数据。数据响应仅包含项目总数,但不包含总页数。鉴于我只有总项目数和每页项目数,如何计算总页数?我需要这个,因为我正在尝试设置分页库

例如:

perPage = 10
totalItemCount = 10
totalPages = 1

想法是 totalItemCount 大于 10 + 1 但小于或等于 20,totalPages 为 2;并且 totalItemCount > 10 + 10 + 1 但小于或等于 30,totalPages = 3 等等...

我无法使用 Kotlin 做出一个好的算法来计算这个

标签: androidkotlinandroid-paging-library

解决方案


这似乎有效。我已经在https://pl.kotl.in/hUDoamkG3中尝试过:

fun main()
{
    val listOfTotalItemCounts = listOf(0, 1, 9, 10, 15, 19, 20, 21, 124)
    val perPage = 10
    
    for (totalItemCount in listOfTotalItemCounts)
    {
        var result = (totalItemCount / perPage)
        result = if (totalItemCount % perPage == 0) result else (result + 1)
        
        print("When totalItemCount = ")
        print(totalItemCount)
        print(" ---> result = ")
        println(result)
    }
}

它产生以下输出:

When totalItemCount = 0 ---> result = 0
When totalItemCount = 1 ---> result = 1
When totalItemCount = 9 ---> result = 1
When totalItemCount = 10 ---> result = 1
When totalItemCount = 15 ---> result = 2
When totalItemCount = 19 ---> result = 2
When totalItemCount = 20 ---> result = 2
When totalItemCount = 21 ---> result = 3
When totalItemCount = 124 ---> result = 13

推荐阅读