Size: a a a

Android Developers

2021 January 27

I

Ivansuper in Android Developers
У нас есть апи, все. Если хочешь использовать иначе -- не будем мешать. Не понимаю чего ты хочешь добиться
источник

JF

Jorik Fat in Android Developers
Ivansuper
Так, завязывай
это мы так любезничаем :)
источник

I

Ivansuper in Android Developers
Jorik Fat
это мы так любезничаем :)
Он просто уже довольно долго тут тянет этот малоосмысленный разговор
источник

JF

Jorik Fat in Android Developers
Aleksey D.
а то из savedInstanceState ногами достают
разница в том, что в restoreState нужно еще доставить arguments
источник

СП

Сергей П. in Android Developers
"привет! стало интересно, почему может быть плохо, если сохранять состояние фрагмента в аргументы.

кажется, что они ведут себя так же, как и savedInstanceState "

Это исходный вопрос.


-----‐-------
Если мы хотим сами полностью  контролировать вопрос сохранеия состояния фрагмента (и ui  его и введенных данных и еще кучи всего, так что бы оно даже перезагрузку аппарата переживало  - то это надо писать самому. И сохранение и восстановление в нужные моменты. Иначе будет....непредсказуемо весело.
источник

AD

Aleksey D. in Android Developers
Ivansuper
У нас есть апи, все. Если хочешь использовать иначе -- не будем мешать. Не понимаю чего ты хочешь добиться
жду, что кто-то с вескими аргументами придет и по голове настучит
мол, делали так на проекте, были такие то проблемы, не советую
источник

JF

Jorik Fat in Android Developers
Ivansuper
Он просто уже довольно долго тут тянет этот малоосмысленный разговор
прочел. Вполне осмысленный. Вопрос в том, почему один и тот же механизм применяется 2 раза в классе. Можно ли использовать 1?
источник

AD

Aleksey D. in Android Developers
Ivansuper
Он просто уже довольно долго тут тянет этот малоосмысленный разговор
так мне люди отвечают, а дальше диалог завязывается
источник

JF

Jorik Fat in Android Developers
Aleksey D.
жду, что кто-то с вескими аргументами придет и по голове настучит
мол, делали так на проекте, были такие то проблемы, не советую
разница вот еще в чем: arguments доступны из вне, savedInstanceState - нет (поэтому в него кладут аргументы для инициализации)
источник

AD

Aleksey D. in Android Developers
Jorik Fat
прочел. Вполне осмысленный. Вопрос в том, почему один и тот же механизм применяется 2 раза в классе. Можно ли использовать 1?
из удобства - доступ к сохраненным состояниям вне методов
источник

JF

Jorik Fat in Android Developers
Aleksey D.
так мне люди отвечают, а дальше диалог завязывается
а в restoreInstanceState сразу передается savedInstanceState
источник

AD

Aleksey D. in Android Developers
Jorik Fat
разница вот еще в чем: arguments доступны из вне, savedInstanceState - нет (поэтому в него кладут аргументы для инициализации)
так и удобно через by lazy презентер создавать, например
источник

JF

Jorik Fat in Android Developers
Aleksey D.
так и удобно через by lazy презентер создавать, например
мы же говорим об sdk, там нет presenter
источник

JF

Jorik Fat in Android Developers
Aleksey D.
из удобства - доступ к сохраненным состояниям вне методов
доступ вне фрагмента к его внутреннему состоянию?
источник

AD

Aleksey D. in Android Developers
Jorik Fat
доступ вне фрагмента к его внутреннему состоянию?
вне метода, который получает в кач-ве параметра состояние, а не фрагмента
но так-то да, потенциальная проблема - внутреннее состояние торчит наружу через getArguments()
источник

JF

Jorik Fat in Android Developers
Aleksey D.
вне метода, который получает в кач-ве параметра состояние, а не фрагмента
но так-то да, потенциальная проблема - внутреннее состояние торчит наружу через getArguments()
не понял вне какого метода. getArguments() можно получить по всему фрагменту в любом месте
источник

JF

Jorik Fat in Android Developers
доступ к состоянию не из onViewStateRestored(savedInstanceState: Bundle?)?
источник

AD

Aleksey D. in Android Developers
Jorik Fat
мы же говорим об sdk, там нет presenter
вполне нормальная задача - создать ViewModel/Presenter после смерти процесса, когда встроенные механизмы не помогли ей пережить пересоздание фрагмента

val presenter by lazy { ViewModel(arguments[«state»] as ViewState }

fun onViewCreated(state: Bundle) {
 model.observeViewStateChanges(owner) {
   arguments[«state»] = it
   this.render(it)
 }
}
источник

AD

Aleksey D. in Android Developers
Jorik Fat
доступ к состоянию не из onViewStateRestored(savedInstanceState: Bundle?)?
ну к getArguments можно обратиться из родительской активити, например 🤷
источник

JF

Jorik Fat in Android Developers
Aleksey D.
ну к getArguments можно обратиться из родительской активити, например 🤷
зачем так делать? разве не рушится инкапсуляция этим?
источник