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 ...

Читать

Синглтон и даблчек

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

Рассмотрим использование двух паттернов программирования в kotlin - singleton и doublecheck. У нас есть пример кода, где экземпляр класса получается как singleton. Для асинхронного вызова функции используется блок синхронизации. [crayon-683af18bef62e448870269/] ...

Читать

 

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

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



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