ЦЕЛЬ ПРОЕКТИРОВАНИЯ ПРОГРАММЫ:
Автоматизация расчетов материалов, необходимых для выпол-нения ремонта в доме или квартире.
НАЗНАЧЕНИЕ ПРОГРАММЫ:
Расчет количества рулонов обоев для указанной комнаты.
ОБЛАСТЬ ПРИМЕНЕНИЯ ПРОГРАММЫ:
Программа может быть использована при ремонте комнаты, ко-гда надо знать, сколько надо купить рулонов обоев.
ВВОД
Вводится высота от пола до потолка, длина большей стены, длина меньшей стены, ширина двери, высота двери, ширина оконного проема, высота оконного проема, длина руло-на(const1) и ширина рулона(const2).
ВЫВОД
Выводится количество рулонов n
Объяснение:
ответ:Для начала в onCreate() уберите эту строку:
chatContainer.clear()
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
lateinit var adapter: RecyclerChatAdapter
Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:
when {
documentSnapshot != null -> {
for (dc in documentSnapshot.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> {
val chat = dc.document.toObject(Chat::class.java)
chatContainer.add(chat) // Добавление данных в Recycler
if(chatContainer.size == documentSnapshot.documentChanges)
{
adapter = RecyclerChatAdapter(chatContainer)
}
}
}
}
}
}
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
for (i in chatContainer) {
adapter.notifyDataSetChanged()
}