Size: a a a

Android Developers

2021 November 06

PV

Pavel Vasilev in Android Developers
Да они на суть проблем не влияют, обычные итоги по большому объему данных + разные индексы для быстрой навигации по списку.
источник

PV

Pavel Vasilev in Android Developers
Как бы да, но событие о том что данные приехали происходит во фрагменте, и при его пересоздании оно опять возникает, хотя новые данные не приехали, и получается вычисляем то что уже вычислено.
источник

L

Leonid in Android Developers
Почему это событие происходит во фрагменте?
источник

PV

Pavel Vasilev in Android Developers
mViewModel = ViewModelProvider(this).get(MainFragmentViewModel::class.java)
mViewModel.myData.observe(viewLifecycleOwner, {
   it?.let { adapter.setMyData(it) }
})
этот код слушает изменения во фрагменте
источник

L

Leonid in Android Developers
Это фрагмент реагирует на изменения в view model, а не на изменения во фрагменте.

И снова тот же вопрос: почему не делать вычисления перед тем, как отдать данные в адаптер? Что мешает? С какой целью логика размазывается повсюду?
источник

Kd

Konstantin dmz9 in Android Developers
адаптер наверно новый делаешь?
источник

PV

Pavel Vasilev in Android Developers
конечно, а как иначе?
источник

Kd

Konstantin dmz9 in Android Developers
храни как поле
источник

PV

Pavel Vasilev in Android Developers
Но реагирует, даже когда изменений нет.
источник

PV

Pavel Vasilev in Android Developers
А чем это поможет, если фрагмент пересоздается?
источник

СП

Сергей П. in Android Developers
Уж точно не в адаптере. Вьюмодель вполне ок.
источник

Kd

Konstantin dmz9 in Android Developers
в таком случае ничем
источник

L

Leonid in Android Developers
И снова тот же вопрос: почему не делать вычисления перед тем, как отдать данные в адаптер? Что мешает? С какой целью логика размазывается повсюду? Для чего делать тяжелые расчеты в UI?
источник

СП

Сергей П. in Android Developers
Можно и на репозиторий это повесить если итоговые данные нужны потенциально не только на ее экранах.
источник

PV

Pavel Vasilev in Android Developers
А как через ливдату отловить момент когда данные поменялись, если она заточена под жизенный цикл фрагмента?
источник

Kd

Konstantin dmz9 in Android Developers
что ты хотел, ты делаешь новый адаптер а данные у тебя хранятся тоже в адаптере, получается он и есть датасорс (хотя по архитектуре адаптер это не датасорс и данные он хранить не должен а должен быть стейтлесс, быть просто прокладкой)
т.е. создал адаптер с (пустой лист), потом ты начал слушать ВМ в вью-креэйтед, именно поэтому у тебя там viewLifecycleOwner - и т.к. вьюмодель горячая - ты сразу получил апдейт в адаптер с пустым листом, в нём пересчитал дифф - вот и получил
источник

БФ

Булат Фасахиев... in Android Developers
Нужен android  разработчик на заказы сотрудничество в компании, кого интересует в лс)
источник

СП

Сергей П. in Android Developers
Лайфдата где объявлена?
источник

L

Leonid in Android Developers
Через лайвдату ничего специально не отлавливают. Это канал передачи уведомлений. Есть новые данные - лайвдата сработала. Всё.
источник

PV

Pavel Vasilev in Android Developers
в репозитории
источник