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
Обсуждают сегодня