aperfilyev
02/17/2021, 8:26 PMprivate val factory = InvalidatingPagingSourceFactory { FeedSource(pages.value, api) }
val items: Flow<PagingData<FeedItem>> = Pager(PagingConfig(20)) {
factory.invoke()
}.flow
composable
@Composable
fun FeedScreen(factory: ViewModelProvider.Factory, onItemClick: (Long) -> Unit) {
val viewModel = viewModel<MainViewModel>(factory = factory)
val items = viewModel.items.collectAsLazyPagingItems()
LazyColumn(content = {
items(items) { item ->
if (item != null) {
RealRowItem(item = item, onItemClick = onItemClick)
} else {
PlaceholderRowItem()
}
}
})
}
Ian Lake
02/17/2021, 8:36 PMInvalidatingPagingSourceFactory
or your ViewModelProvider.Factory
? If the former, it looks like you're missing a `cachedIn(viewModelScope)`: https://developer.android.com/topic/libraries/architecture/paging/v3-paged-data#pagingdata-streamaperfilyev
02/17/2021, 9:03 PMcachedIn(viewModelScope)
exactly, thanks!