169 похожих чатов

Правильно ли я понимаю, что viewmodel не переживает смену конфигурации

фрагмента? для того чтобы данные сохранялись при перевороте необходимо передавать requireActivity() во viewModelProvider? нормально ли это и не приведет ли к проблемам?

27 ответов

16 просмотров

переживает, в этом единственный смысл гугловых вьюмоделей

</кипарис>- Автор вопроса

ViewModel objects are scoped to the Lifecycle passed to the ViewModelProvider when getting the ViewModel. The ViewModel remains in memory until the Lifecycle it's scoped to goes away permanently: in the case of an activity, when it finishes, while in the case of a fragment, when it's detached.

</кипарис>
ViewModel objects are scoped to the Lifecycle pass...

ну видимо смена конфига — это не goes away permanently

</кипарис>- Автор вопроса
Mike (деньги не клянчу)
ну видимо смена конфига — это не goes away permane...

в том то и дело, что с активити норм работает, а в документации написано, что vm фрагмента уничтожается когда он deatached, не пойму как сделать vm для фрагмента

Я не знаю, что ты там за шайтан код написал. Просто инициализируй vm так и все. Val vm by viewModels<Type>()

Я давно не использовал ViewModelProvider. Раньше там вроде, что то на подобие of ещё было

</кипарис>- Автор вопроса
</кипарис>- Автор вопроса
Nikita Senatorov
Вообще и так должно работать вроде

в доке написано что vm фрагмента уничтожается когда он detached...а у активити когда она окончательно finished и эта теория подтверждается когда я пытаюсь перевернуть экран со своей vm

Активити

</кипарис>- Автор вопроса
Leonid B.
Активити

harmonizr как я понял говорит, что фрагмент

</кипарис>- Автор вопроса

то есть норм если в провайдер передать requireActivity, тогда получается, что жц vm будет привязана к жц fragmentactivity? правильно ли это

У меня все работает вроде

</кипарис>- Автор вопроса

как я понял стандартная vm фрагмента не сохраняет state, только если привязать vm к активити контейнеру фрагмента

</кипарис>- Автор вопроса
</кипарис>
как я понял стандартная vm фрагмента не сохраняет ...

И я так понял. И что если нужно что-то сохранять, то будьте добры руками.

Алексей Соловьев
не вызывается

Как фрагмент создается/добавляется?

Leonid B.
Как фрагмент создается/добавляется?

supportFragmentManager .beginTransaction() .add(R.id.container, BlankFragment(), "BlankFragment") .addToBackStack(null) .commit()

</кипарис>- Автор вопроса

вот я и не могу понять, если добавлять фрагмент в бекстек то вм не удаляется, а если не добавлять то уничтожается

</кипарис>
вот я и не могу понять, если добавлять фрагмент в ...

Колдунство! Наверное, при сохранении в бэкстеке есть смысл хранить вм. А когда фрагмент выкидывается в никуда, то смыла нет.

</кипарис>- Автор вопроса
Leonid B.
Колдунство! Наверное, при сохранении в бэкстеке ес...

тогда получается при повороте, если фрагмент есть в бекстеке, то он оттуда же берется и соответственно его vm сохраняется, а если нет, то просто фрагмент пересоздается и vm тоже

А в чем смысл? 🤔

Алексей Соловьев
А в чем смысл? 🤔

Ну мало ли. Бэкстек не хочется, а вм сохранять нужно 🤷

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
8
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Доброе утро! Не совсем понятно как установить счетчик яндекс метрики на сайт. И потом ещё цели проставить?
Евгения
18
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Гуру, подскажите, меня уже критиковали за неумением, но и в инете я решения не нашел, тем более в доках абракадабры. В 12.1 студии появился новый тип TSQLTimeStampOffset , ест...
Delphi Photo
10
Это фейк @cruppto_newbot?
Antskup
10
Карта сайта