Повторное использование PagingSource в Paging3Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Повторное использование PagingSource в Paging3

Сообщение Anonymous »

В Paging3 я столкнулся с проблемой, заключающейся в том, что необходимо каждый раз создавать новый экземпляр PagingSource. Я не могу понять, как это правильно реализовать. Я нашел в Google информацию о том, что можно создать экземпляр непосредственно в pagingSourceFactory, но проблема с этим методом в том, что я не смогу позже выполнить validate(), чтобы перезагрузить страницу. Какие существуют решения этой проблемы?

Код: Выделить всё

class SearchDialogComponentImpl(
componentContext: ComponentContext,
componentFactory: ComponentFactory,
private val searchService: SearchService,
) : SearchDialogComponent, BaseComponent(componentContext, SearchDialogState()),
KoinComponent {

private val searchProductRepositoryPagingSource: SearchProductRepositoryPagingSource by inject {
parametersOf(
viewState.searchTextField
)
}

override val products: Flow
> = Pager(
initialKey = BuildKonfig.PAGING_INITIAL_PAGE,
config = PagingConfig(
pageSize = BuildKonfig.PAGING_OFFSET,
initialLoadSize = BuildKonfig.PAGING_OFFSET,
),
pagingSourceFactory = { searchProductRepositoryPagingSource  }
).flow

override fun onSearchTextFieldValueChanged(value: String) {
viewState = viewState.copy(searchTextField = value)
searchTextFieldValueChanged(value)

if (viewState.searchedProduct) {
searchJob?.cancel()

if (viewState.searchTextField.isNotEmpty()) {
searchJob = scope.launch(Dispatchers.IO) {
delay(500)
searchProductRepositoryPagingSource.invalidate()
}
} else {
viewState =
viewState.copy(productsLoadingState = LoadingState.Empty(EmptyType.EmptyTextField))
}
}
}
}
Пытался сделать это через InvalidatingPagingSourceFactory


Подробнее здесь: https://stackoverflow.com/questions/786 ... in-paging3
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Paging3: «Не знаю, как преобразовать курсор в тип возвращаемого значения этого метода» при использовании PagingSource в
    Anonymous » » в форуме Android
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Paging3 не делает недействительным PagingSource при изменении базы данных
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Android PagingSource продолжает загружать данные и бесконечно возвращает данные
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Понимание getRefreshKey PagingSource
    Anonymous » » в форуме Android
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Пейджинг3 не лишает аннулирования Pagingsource при изменении DB
    Anonymous » » в форуме Android
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»