개발일지

Android in A..Z - Paging3 (Pager) 본문

Android (안드로이드)/Paging

Android in A..Z - Paging3 (Pager)

강태종 2021. 5. 25. 01:45

Pager

PagingConfig를 바탕으로 PagerSource로부터 PagingData를 만들어서 Flow형으로 반환한다.


코드

@HiltViewModel
class ViewerViewModel @Inject constructor(): ViewModel() {
    fun getPagingData(webToon: WebToon, episode: Int): Flow<PagingData<String>> {
        return Pager(PagingConfig(pageSize = 10), episode - 1) {
            ViewerPagingSource(webToon, episode)
        }.flow
//                데이터를 변환해야 할 경우
//                .map {
//                    it
//                }
                .cachedIn(viewModelScope)
    }
}
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        lifecycleScope.launchWhenResumed {
            viewModel.getPagingData(webToon, episode).collect {
                viewerPagingAdapter.submitData(it)
            }
        }
    }

Pager

PagingConfig를 바탕으로 PagerSource를 통해 PagingData를 만들고 Flow형으로 반환한다.

매개변수로 PagingConfit, initialKey, PagingSourceFactory, RemoteMediator를 받는다.


PagingConfig

Pager의 구성요소로 Paging 기법에 관련된 설정을 제공합니다.


Git (예제코드)

https://github.com/KangTaeJong98/Example/tree/main/Android/Paging

 

KangTaeJong98/Example

My Example Code. Contribute to KangTaeJong98/Example development by creating an account on GitHub.

github.com

 

Comments