RecyclerView. Проблемы с обновлением списка и исчезновением данных

Прилетают данные из БД. При первом появлении на recycleView отображаются корректно записи (кол-во). При переходе на элемент и возврате на список, количество записей может измениться меньшую сторону. Сбросить состояние можно только через обновление notifyDataSetChanged(), однако, если запускать в observer, ничего не происходит.

Fragment

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    recyclerViewEmployee.also { rv ->
        rv.layoutManager = LinearLayoutManager(activity)
        rv.addItemDecoration(DividerItemDecoration(activity, LinearLayoutManager.VERTICAL))
        rv.adapter = specialityAdapter
    }

    (arguments?.get("specialty") as Specialty).let { it ->
        specialtyName = it.name

        employeeSpecialtyViewModel.getAllEmployee(it.specialtyId)
            .observe(viewLifecycleOwner, Observer { response ->
                response?.also {
                    specialityAdapter.updateData(response)
                    recyclerViewEmployee.recycledViewPool.clear()
                }
            })
    }
}

Сброс бага к нормальной работе:

    test.setOnClickListener {
        (recyclerViewEmployee.adapter as EmployeeAdapter).notifyDataSetChanged()
    }

updataData()

fun updateData(data: List<Employee>) {
    this.employeeList = data
    notifyDataSetChanged()
}

Ответы (1 шт):

Автор решения: ЮрийСПб

Замените

this.employeeList = data

на

this.employeeList.clear();
this.employeeList.addAll(data);

notifyDataSetChanged() не срабатывает, т.к. вы не меняете уже имеющиеся данные но заменяете их на новые

→ Ссылка