Size: a a a

StartAndroid Ru Chat

2021 February 23

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
а внутри него уже блок init с вызовом корутины запроса данных. Может кто подсказать как правильно вызывать создание viewmodel. я ожидал что ViewModelProvider вернет тот обьект который уже был создан и который хранит всю информацию внутри себя. В чем я неправ?
источник

SP

Sergey Panov in StartAndroid Ru Chat
Анатолий Чепига
а внутри него уже блок init с вызовом корутины запроса данных. Может кто подсказать как правильно вызывать создание viewmodel. я ожидал что ViewModelProvider вернет тот обьект который уже был создан и который хранит всю информацию внутри себя. В чем я неправ?
ViewModel правильно создаётся. Проверить один и тот же экземпляр viewModel возвращает ViewModelProvider можно сравнив hashCode у viewModel после после поворота экрана.
Скорее всего делается повторный запрос в сеть по другой причине.
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
Sergey Panov
ViewModel правильно создаётся. Проверить один и тот же экземпляр viewModel возвращает ViewModelProvider можно сравнив hashCode у viewModel после после поворота экрана.
Скорее всего делается повторный запрос в сеть по другой причине.
но выполнение блока init разве лишнее? init вызывается только при создании
источник

SP

Sergey Panov in StartAndroid Ru Chat
Анатолий Чепига
но выполнение блока init разве лишнее? init вызывается только при создании
Да, инит вызывается только при создании, ошибка скорее всего где-то в другом месте.
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
Sergey Panov
Да, инит вызывается только при создании, ошибка скорее всего где-то в другом месте.
хм..... ну я прошу создать у провайдера viewmodel  тот каждый раз возвращает мне новую....
источник

SP

Sergey Panov in StartAndroid Ru Chat
Анатолий Чепига
хм..... ну я прошу создать у провайдера viewmodel  тот каждый раз возвращает мне новую....
Попробуйте создавать не через лэзи, а через lateInit var, но ещё раз говорю что ошибка скорее всего где-то в другом месте.
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
ну там только два момента. вызов viewmodel из фрагмента или активити и сам класс viewmodel.ладно. остается только дебажить и ждать просветления
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
Sergey Panov
Попробуйте создавать не через лэзи, а через lateInit var, но ещё раз говорю что ошибка скорее всего где-то в другом месте.
крч нашел
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
private val viewModel: CatalogViewModel by lazy {
       ViewModelProvider(this).get(CatalogViewModel::class.java)
   }
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
this передается фрагмент. разумеется фрагмент уничтожается при переключении на другой фрагмент
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
надо requireActivity
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
я прав?
источник

Ф

Фёдор in StartAndroid Ru Chat
Если фрагмент кладется в бэкстэк, то он не уничтожается
источник

SP

Sergey Panov in StartAndroid Ru Chat
Анатолий Чепига
this передается фрагмент. разумеется фрагмент уничтожается при переключении на другой фрагмент
А Вас вьюМодель для активити или для фрагмента?
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
для фрагмента
источник

SP

Sergey Panov in StartAndroid Ru Chat
Если для фрагмента, то нужно this (фргамент)
источник

SP

Sergey Panov in StartAndroid Ru Chat
Анатолий Чепига
для фрагмента
Значит надо this
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
ну было this и у меня пересоздавался вьюмодел. поменял на актвити и перестало
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
магия? мой косяк? косяк гугла? моя магия(кривожопости)? загадка
источник

АЧ

Анатолий Чепига... in StartAndroid Ru Chat
Фёдор
Если фрагмент кладется в бэкстэк, то он не уничтожается
а как класть определенный фрагмент в бэкстек чтоб он не удалялся? только он один. в нем отображается recyclerview а для открытия элемента списка я переиспользую один и тот же фрагмент
источник