Я безуспешно пытался использовать StateRestorationPolicy и не могу найти способ получить позицию прокрутки PagingDataAdapter и восстановить ее до этого значения. та же самая позиция при переходе обратно к фрагменту.
В моей ViewModel у меня есть поток, который собирает данные из RemoteMediator:
Код: Выделить всё
val flow = Pager(config = PagingConfig(5), remoteMediator = remoteMediator) {
dao?.getListAsPagingSource()!!
}.flow.cachedIn(viewModelScope)
Код: Выделить всё
viewLifecycleOwner.lifecycleScope.launch {
viewModel.flow.collectLatest { pagingData ->
adapter?.submitData(pagingData)
}
}
Код: Выделить всё
class MyFragment : Fragment() {
...
private var adapter: FeedAdapter? = null
...
override onViewCreated(...) {
if (adapter == null) {
adapter = FeedAdapter(...)
}
recyclerView.adapter = adapter
viewLifecycleOwner.lifecycleScope.launch {
viewModel.flow.collectLatest { pagingData ->
adapter?.submitData(pagingData)
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/677 ... -library-3
Мобильная версия