인프런 커뮤니티 질문&답변

윤성식님의 프로필 이미지
윤성식

작성한 질문수

냉동코더의 알기 쉬운 Modern Android Development 입문

Pager 관련 질문입니다!

작성

·

183

0

해당 강의가 너무 도움이 되어!! 다른 카카오 오픈 api를 통해 다른 어플을 개발하고 있습니다!

다만 다음 부분에서 이해가 덜 되어 에러가 발생하고 있습니다!

제가 연결하고 있는 api의 page(결과 페이지 번호)는 최대 45, size(한 페이지당 보여질 문서의 개수)는 최대 15여서 다음과 같이 설정하였으나, load 부분에서 params.loadSize 가 계속 45가 나와 최대 사이즈를 초과했다는 에러가 발생합니다

override fun searchPagingFood(query: String): Flow<PagingData<Restaurant>> {
    val pagingSourceFactory = { SearchFoodPagingSource(query)}

    return Pager(
        config = PagingConfig(
            pageSize = PAGING_SIZE, //15
            enablePlaceholders = false,
            maxSize = PAGING_SIZE * 3 //15 * 3
        ),
        pagingSourceFactory = pagingSourceFactory
    ).flow
}
val response = SearchFoodApi.create().searchFood(
    query, "FD6, CE7", "126.923460283882",
    "37.5803504797164", 10000, pageNumber, params.loadSize
)

책 검색 api와 똑같은 개념이지만, page와 size의 단위가 달라 헷갈립니다!!

이럴 경우에는 pageSize와 maxSize를 어떤 범위로 설정하고, 왜 계속 params.loadSize가 45가 나오는지 이해가 되지 않습니다!!

page의 최대값은 45이고, size는 최대값이 15입니다.

어떻게 설정해야하는지 알려주시면 감사하겠습니다 ㅠㅠㅠㅠㅠㅠ

 

 

답변 1

0

냉동코더님의 프로필 이미지
냉동코더
지식공유자

책검색 API는 받아올 아이템 갯수와, 몇번째 페이지인지를 전달합니다. Paging은 이 값을 자기가 계산해서 전달하게 되는 것이죠. params.loadSize를 계산하는 부분은 BookSearchPagingSource이기 때문에 Practice8B를 다시 학습하시면서 PagingSource의 사용법과 원리를 정확히 파악하시는게 중요할 것 같습니다.

윤성식님의 프로필 이미지
윤성식

작성한 질문수

질문하기