Size: a a a

StartAndroid Ru Chat

2021 February 17

ИЗ

Иван Захаров... in StartAndroid Ru Chat
Дмитрий Рубцов 🇷🇺🔥
так у тебя в обоих вариантах две строчки выходит
вот я только что написал 3 строчки с выносом в переменную
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
вот тоже 3 строчки

private val myView: View
   get() = findViewById(R.id.my_view)

myView.apply{…}
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
можно геттер в 1 строчку писать )
мне кажется так лучше выглядит
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
ну тогда можно и lazy в одну строчку написать)))

private val myView: View by lazy { findViewById(R.id.my_view) }

myView.apply{…}
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
нене, лази нельзя, у тебя после поворота всё сломается
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
да, не заметил
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
хотя стоп
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
а точно ли сломается
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
да, у тебя после поворота вью пересоздастся, а внутри переменной будет лежать ссылка на старый экземпляр вьюшки
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
надо в онкреэйте или обновлять ссылку на вью, или как я заново по геттеру инициализировать инфу
или как уже писали, юзать вьюбиндинг, он при инициализации в креэйте обновит ссылки у себя внутри
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
не, не сломается т.к пересоздается активити и значение lazy заново будет высчитано
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
но если поставить configChanges="orientation" то конечно будет краш
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
Дмитрий Рубцов 🇷🇺🔥
не, не сломается т.к пересоздается активити и значение lazy заново будет высчитано
вью не обязательно будет другим экземпляром, если задетачить фрагмент и приаттачить заново, у него вызовется onViewCreated второй раз
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
тогда тут такое не прокатит
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
но на моей практике чаще всего используют replace
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
с активити такая же фигня
However, there are a number of situations that can cause your activity to be killed and brought back to life. Thus, onCreate will be called again.
To support this properly, you can save state information in onSaveInstanceState and restore it fron the state bundle you get in on create.
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
так что не советую юзать lazy для инициализации вьюшек
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
Иван Захаров
с активити такая же фигня
However, there are a number of situations that can cause your activity to be killed and brought back to life. Thus, onCreate will be called again.
To support this properly, you can save state information in onSaveInstanceState and restore it fron the state bundle you get in on create.
Под brought back to life тут другое предполагается
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
что можно выставить например флаг dontKeepActivities чтобы активити умирали, а при следующем заходе восстанавливался savedInstanceState
источник