从 kotlin-android-extensions 迁移到较新的视图绑定

Man*_*ore 1 view kotlin android-viewbinding

所以如果你得到类似下面的东西

> Configure project :app
Warning: The 'kotlin-android-extensions' Gradle plugin is deprecated.
Run Code Online (Sandbox Code Playgroud)

这可能意味着不再支持/弃用使用 Kotlin 合成进行视图绑定。

因此,下面是答案,您可以清楚地了解如何获取/识别与您的视图相关的 ViewBinding 类。

Man*_*ore 7

为了迁移到更新的绑定方式,您需要首先删除 kotlin 合成插件,该插件可能已添加如下:

apply plugin: 'kotlin-android-extensions'
Run Code Online (Sandbox Code Playgroud)

或者

plugins {
    ...
    id 'kotlin-android-extensions'
}
Run Code Online (Sandbox Code Playgroud)

从应用程序 gradle 中删除合成插件后,您需要删除可能类似于以下任一内容的导入:

  • 活动/片段视图:导入 kotlinx.android.synthetic.main.<your_activity_view>.*
  • 普通视图: import kotlinx.android.synthetic.main.<your_layout_view>.view.*

现在开始实际迁移

您需要在应用程序 gradle 中添加以下内容

android {
     ... 
     buildFeatures {
        viewBinding true
    }
}
Run Code Online (Sandbox Code Playgroud)

之后,您需要在要绑定视图的位置添加绑定属性。下面是一个例子:

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"
}
Run Code Online (Sandbox Code Playgroud)

注意:如果您的活动布局是activity_main.xml,那么您的绑定应该是ActivityMainBinding

在这里您将找到片段的视图绑定示例

是来自谷歌的官方迁移文档