Kotlin Android 扩展已废弃,这意味着不再支持使用 Kotlin 合成进行视图绑定。如果您的应用使用 Kotlin 合成进行视图绑定,请按照本指南迁移到 Jetpack 视图绑定。
如果您的应用尚未使用 Kotlin 合成进行视图绑定,请参阅视图绑定,了解基本用法信息。
更新 Gradle 文件
与 Android Extensions 扩展一样,Jetpack 视图绑定是逐个模块启用的。对于使用视图绑定的每个模块,请在模块级 build.gradle
文件中将 viewBinding
构建选项设置为 true
:
Groovy
android { ... buildFeatures { viewBinding true } }
Kotlin
android { ... buildFeatures { viewBinding = true } }
如果您的应用不使用 Parcelable
功能,请移除用于启用 Kotlin Android 扩展的代码行:
Groovy
plugins { id 'kotlin-android-extensions' }
Kotlin
plugins { kotlin("android.extensions") }
如需详细了解如何在模块中启用视图绑定,请参阅设置说明。
更新 activity 和 fragment 类
使用 Jetpack 视图绑定时,系统会为模块包含的每个 XML 布局文件生成一个绑定类。此绑定类的名称是 XML 文件的名称(采用 Pascal 大小写形式),并在末尾添加 Binding 一词。例如,如果布局文件的名称为 result_profile.xml
,则生成的绑定类的名称为 ResultProfileBinding
。
如需使用生成的绑定类(而不是合成属性)来引用视图,请执行以下操作来更改 activity 和 fragment 类:
从
kotlinx.android.synthetic
移除所有导入。膨胀生成的绑定类的实例,以供 activity 或 fragment 使用。
- 对于 activity,请按照在 activity 中使用视图绑定中的说明在 activity 的
onCreate()
方法中膨胀实例。 - 对于 fragment,请按照在 fragment 中使用视图绑定中的说明在 fragment 的
onCreateView()
方法中膨胀实例。
- 对于 activity,请按照在 activity 中使用视图绑定中的说明在 activity 的
更改所有视图引用,以使用绑定类实例而不是合成属性:
// 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 库概览
- 测试 Paging 实现