【问题标题】:Migrating from kotlin-android-extensions to newer view binding从 kotlin-android-extensions 迁移到更新的视图绑定
【发布时间】:2020-11-25 16:40:56
【问题描述】:
所以如果你得到类似下面的东西
> Configure project :app
Warning: The 'kotlin-android-extensions' Gradle plugin is deprecated.
这可能意味着不再支持/弃用使用 Kotlin 合成器进行视图绑定。
所以下面是答案,您可以清楚地了解如何获取/识别与您的视图相关的 ViewBinding 类。
【问题讨论】:
标签:
kotlin
view
android-viewbinding
【解决方案1】:
为了迁移到新的绑定方式,您需要首先删除可以添加如下的 kotlin 合成插件:
apply plugin: 'kotlin-android-extensions'
或
plugins {
...
id 'kotlin-android-extensions'
}
从 app gradle 中删除合成插件后,您需要删除可能类似于以下任一的导入:
- 活动/片段视图:导入
kotlinx.android.synthetic.main..*
- 普通视图:
导入 kotlinx.android.synthetic.main..view.*
现在开始实际迁移
您需要在您的应用程序 gradle 中添加以下内容
android {
...
buildFeatures {
viewBinding true
}
}
在此之后,您需要在要绑定视图的位置添加绑定属性。
下面是一个例子
:
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
binding.myTextView.text = "my text" //say your text view id is like : my_text_view"
}
注意:如果您的活动布局是 activity_main.xml,那么您的绑定应该是 ActivityMainBinding
here 你会找到片段的视图绑定示例
here 是 google 的官方迁移文档