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

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

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

27 ответов

37 просмотров

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

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

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 тоже

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта