Я создал RecyclerView, который хорошо заполнен. Проблема заключается в изменении списка в RecyclerView.
Когда я выбираю фильтр, я вызываю метод getFilteredCards(), который получает весь контент с примененными фильтрами. Затем это становится новым списком, связанным с RecyclerView.Adapter (например, используемым в getItemCount()).
Я пытаюсь обновить полный такой контент:
Код: Выделить всё
private fun refreshData() {
cacheFilteredCards = getFilteredCards() // get new list
notifyDataSetChanged()
}
- После первого фильтра первый элемент остается в списке, все остальные в порядке. удаленный. Затем добавляются все нужные.
- Для второго фильтра (и всех остальных после) контент просто добавляется внизу списка. Итак, у меня есть предыдущий список + новый отфильтрованный.
Код: Выделить всё
private fun refreshData() {
cacheFilteredCards.clear()
notifyDataSetChanged()
cacheFilteredCards = getFilteredCards() // get new list
notifyDataSetChanged()
}
Как я могу полностью очистить список и сохранить представление recyclerview? (и не делать все элементы невидимыми, так как это плохое решение)
Подробнее здесь: https://stackoverflow.com/questions/792 ... ious-resul