View Binding в kotlin

Иногда на собесах спрашивают что такое view binding, и звучит это как некая сложная тема, но на самом деле, это просто фича сборщика, которую можно использовать для упрощения доступа к элементам шаблонов.

Этот механизм упрощает работу с элементами пользовательского интерфейса в Android-приложениях, минимизируя ошибки, связанные с неверным использованием идентификаторов представлений (view). Он помогает избежать использования findViewById, предоставляя доступ к элементам интерфейса через сгенерированные классы.

Для начала нужно включить эту фичу в build.gradle

Фича активируется после синхронизации gradle файлов.

Пусть у вас есть шаблон activity_main. Тогда фича создаст класс ActivityMainBinding, который предоставит доступ к View элементам — не нужно заниматься копированием id из макета, и выполнять monkey-job по вызову findViewById.

Пример кода для activity

Обратите внимание, что setContentView также использует binding объект.

Пример кода использования binding во фрагменте

Здесь использована более сложная схема, т.к. у фрагментов более сложный жизненный цикл, чем у активити. Нам нужно чтобы binding функционировал пока существует view. И если вы обратитесь к binding за рамками onViewCreated — onDestroyView, то будет брошено исключение.

Написать комментарий

Мало букафф? Читайте есчо !

Работа с фрагментами в kotlin

Февраль 13, 2025 г.

Небольшой гайд по работе с фрагментами в android studio. Фрагменты чем то напоминают фреймы в html. Фрагменты обладают многими возможностями, которые есть у активити (Activity), имеют свой lifecycle, также работают с viewModel и т.п. И конечно же фрагмент ...

Читать

Читаем данные из интернет

Январь 23, 2025 г.

Для чтения данных из интернет есть множество библиотек и классов, потому не стоит делать так, как это описано ниже в статье. Я буду использовать базовые библиотеки, и будет много кода (kotlin). Задача - есть BASE_URL, надо прочитать текстовые данные. ...

Читать

 

Комментарии к «View Binding в kotlin»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: