val button by lazy { requireView().findViewById<Button>(R.id.button) }
Перехожу на экран вперед а потом назад на этот же экран и уже OnClickListener не срабатывает и вообще никакое свойство не задается у button!
Когда используешь
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val button = view.findViewById<Button>(R.id.button)
// ...
Все работает как и должно.
Не могу понять почему так происходит? Ведь айдишник тот же и ссылка вроде не нул, почему так?
Для работы с лэйаутами нужно использовать view binding. Выкиньте уже нафиг этот findViewById. Если объект не уничтожался, то by lazy у его полей не вызовется - один раз проинициализировано и хватит.
Согласен, это было исключительно в целях саморазвития) Кстати скоро больше всего и от view binding тоже откажемся в пользу композа) Спасибо за ответ!
И такое может случиться.
Возможно потому, что работу с интерфейсом нужно делать именно в onViewCreate
Обсуждают сегодня