Как очистить / удалить все элементы в адаптере списка страниц - PullRequest
0 голосов
/ 25 февраля 2019

Я использую библиотеку подкачки Android, чтобы показать элементы результатов поиска, есть ли способ очистить / удалить все загруженные элементы результатов, вызов Invalidate для живого Paged List, обновляющий список, не очистить / удалить элементы

In Activity: 
 fun clearSearchResult() {
        if (productSearchResultItemAdapter.itemCount > 0) {
            viewModel.invalidateResultList()
        }
    }


In ViewModel
 private fun searchProductByTerm(searchTerm: String): Listing<Item> {
        sourceFactory = ProductSearchItemDataSourceFactory(productSearchUC, compositeDisposable, searchTerm, resourceResolver)

        val livePagedList = LivePagedListBuilder(sourceFactory, pagedListConfig)
                //The executor used to fetch additional pages from the DataSource
                .setFetchExecutor(getNetworkExecutor())
                .build()

        return Listing(
                pagedList = livePagedList,
                networkState = switchMap(sourceFactory.sourceLiveData) {
                    it.networkState
                },
                retry = {
                    sourceFactory.sourceLiveData.value?.retryAllFailed()
                }
        )

    }


    fun invalidateResultList() {
        sourceFactory?.sourceLiveData?.value?.invalidate()
    }

private val productSearchName = MutableLiveData<String>()
    private val repoResult = map(productSearchName) {
        searchProductByTerm(it)
    }

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

отправка null очистить текущий загруженный список страниц

  productSearchResultItemAdapter.submitList(null)
0 голосов
/ 25 февраля 2019

Перед аннулированием очистите ваш элемент данных списка.Как мы сделали простым способом:

list.clear();
adapter.notifyDataSetChanged();
...