Расширения Kotlin для Android устарели, поэтому использование синтетических представлений Kotlin для привязки представлений больше не поддерживается. Если в вашем приложении для привязки представлений используются синтетические свойства Kotlin, воспользуйтесь этим руководством, чтобы перейти на привязку представлений Jetpack.
Если в вашем приложении не используется Kotlin synthetics для привязки представлений, ознакомьтесь с основной информацией об использовании привязки представлений.
Обновите файл Gradle
Как и расширения Android, привязка представлений Jetpack включается отдельно для каждого модуля. Для каждого модуля, использующего привязку представлений, задайте для параметра сборки viewBinding значение true в файле build.gradle на уровне модуля:
Яркий
android { ... buildFeatures { viewBinding true } }
Kotlin
android { ... buildFeatures { viewBinding = true } }
Если в вашем приложении не используются функции Parcelable, удалите строку, которая включает расширения Kotlin для Android:
Яркий
plugins { id 'kotlin-android-extensions' }
Kotlin
plugins { kotlin("android.extensions") }
Подробнее о том, как включить привязку представлений в модуле, рассказывается в инструкциях по настройке.
Обновите классы Activity и Fragment
Привязка представлений Jetpack генерирует класс привязки для каждого XML-файла макета, содержащегося в модуле. Название этого класса привязки – это название XML-файла в стиле PascalCase с добавлением слова Binding в конце. Например, если файл макета называется result_profile.xml, то сгенерированный класс привязки будет называться ResultProfileBinding.
Чтобы использовать сгенерированные классы привязки вместо синтетических свойств для ссылок на представления, измените классы activity и fragment следующим образом:
Удалить все импортированные данные из сервиса "
kotlinx.android.synthetic".Создайте экземпляр сгенерированного класса привязки для действия или фрагмента.
- Для действий следуйте инструкциям в разделе Использование привязки представлений в действиях, чтобы создать экземпляр в методе
onCreate()вашего действия. - Для фрагментов следуйте инструкциям в разделе Использование привязки представлений во фрагментах, чтобы создать экземпляр в методе
onCreateView()фрагмента.
- Для действий следуйте инструкциям в разделе Использование привязки представлений в действиях, чтобы создать экземпляр в методе
Измените все ссылки на представления, чтобы использовать экземпляр класса привязки вместо синтетических свойств:
// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString
// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString
Подробнее об этом рассказывается в разделе Использование руководства по привязке представлений.
Рекомендуем
- Примечание. Текст ссылки показывается, когда JavaScript отключен.
- Посмотреть привязку
- Обзор библиотеки Paging
- Как протестировать реализацию разбиения на страницы