Как добавить разделитель в каждую позицию n внутри recyclerview с библиотекой Paging3?

С помощью новой библиотеки Paging3 мы упростили вставку элементов/разделителей в recyclerview, как показано в руководстве Google Android Codelabs https://developer.android.com/codelabs/android-paging#11, но как получить логику вставки элементов в каждую позицию n, скажем, в каждую позицию 10 в переработчик.

Образец кода

fun searchRepo(queryString: String): Flow<PagingData<UiModel>> {
val lastResult = currentSearchResult
if (queryString == currentQueryValue && lastResult != null) {
    return lastResult
}
currentQueryValue = queryString
val newResult: Flow<PagingData<UiModel>> = repository.getSearchResultStream(queryString)
        .map { pagingData -> pagingData.map { UiModel.RepoItem(it) } }
        .map {
            it.insertSeparators<UiModel.RepoItem, UiModel> { before, after ->
                if (after == null) {
                    // we're at the end of the list
                    return@insertSeparators null
                }

                if (before == null) {
                    // we're at the beginning of the list
                    return@insertSeparators UiModel.SeparatorItem("${after.roundedStarCount}0.000+ stars")
                }
                // check between 2 items
                if (before.roundedStarCount > after.roundedStarCount) {
                    if (after.roundedStarCount >= 1) {
                        UiModel.SeparatorItem("${after.roundedStarCount}0.000+ stars")
                    } else {
                        UiModel.SeparatorItem("< 10.000+ stars")
                    }
                } else {
                    // no separator
                    null
                }
            }
        }
        .cachedIn(viewModelScope)
currentSearchResult = newResult
return newResult

Как найти логику добавления элемента на каждую 10-ю позицию в приведенном выше примере кода

fun itemInsert(position: Int): Int {
    return if (position % 10 == 0) //each 10 position is separator 
        SEPARATOR else COMMON
}

person Pranam Baruah    schedule 20.01.2021    source источник
comment
Я не думаю, что это имеет какое-либо отношение к пейджингу. вам нужно изменить файл ItemDecorator. вы можете изменить DividerItemDecoration для работы таким образом. См. stackoverflow.com/questions/ 28713231/.   -  person ADM    schedule 20.01.2021
comment
@ADM Извините, сэр, я понимаю, но сэр, я не имел в виду ItemDecorator. На самом деле, я спрашивал о вставке элемента с интервалом в каждую 10-ю позицию только с помощью новой библиотеки android paging3. Со старыми трюками я могу добиться того же в recyclerview, но, сэр, мне нужно реализовать только библиотеку paging3.   -  person Pranam Baruah    schedule 20.01.2021
comment
Снова не уверен насчет библиотеки подкачки. Но это то же самое, что добавлять элемент после каждой n-й позиции в списке массивов. Что-то вроде Это вы пробовали?   -  person ADM    schedule 20.01.2021
comment
@ADM Да, сэр, ссылка, которую вы предоставляете, является старым приемом для достижения того же, и с этим я могу сделать это в адаптере recyclerview, но в библиотеке paging3 концепция немного отличается, и та же самая предоставленная вами логика должна реализовать в приведенном выше примере кода с до и после здесь it.insertSeparators‹UiModel.RepoItem, UiModel› { before, after -›} . Логика должна быть реализована только в приведенном выше примере кода. Библиотека Paging3 имеет гораздо больше дополнительных функций.   -  person Pranam Baruah    schedule 20.01.2021
comment
У вас есть решение? Если да, пожалуйста, помогите мне, я тоже сталкиваюсь с этой проблемой @PranamBaruah   -  person freeman    schedule 29.01.2021