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, то будет брошено исключение.

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

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

Анимированный градиент в ActionBar

Октябрь 23, 2022 г.

Расскажу как создать фон для actionbar с анимацией градиента цвета. Нам понадобится Android Studio и Kotlin. Для начала добавим drawable ресурс в наш проект. Откроем в проекте вкладку res/drawable и выберем из меню File -> New -> Drawable ...

Читать

Вызов одного конструктора в другом в Kotlin

Январь 21, 2025 г.

Если вы переходите с java на kotlin, то у вас часто возникают вопросы вроде - как сделать на kotlin то, что вы делали на java вот так и так. В java вызов перегруженного конструктора в другом конструкторе класса выглядит следующим образом. Представим, ...

Читать

 

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

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



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