微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kotlin 合成导入不起作用,现在已弃用

如何解决Kotlin 合成导入不起作用,现在已弃用

在 kotlin 中访问布局中的元素不需要做

val k = findViewById(R......)

如果您的主要活动中有文本元素,则该元素应自动导入到连接到视图 FE 的 kotlin 文件中,在 kotlin 中,您可以直接在膨胀该视图和导入的文件中使用它的 id 来访问它应该像这样自动添加

import kotlinx.android.synthetic.main.activity_main.view.*

但是在最近的几个项目中,我注意到这不会自动发生。

解决方法

您是对的,Kotlin 合成与视图绑定功能有很多相似之处。视图绑定的主要优点是使用错误的绑定类会有点困难(对于合成类,如果在多个布局中具有相同 ID 的视图,则很容易导入错误的合成类)。

我认为它已被弃用的原因有很多,即类型安全问题以及它不适用于 Java 的事实。

我写了一个关于视图绑定 here 的简短教程。

,

经过一番挖掘,我发现 Kotlin Android 扩展现已被弃用。这是使用新方法的指南。 https://developer.android.com/topic/libraries/view-binding

另一种选择是在 app.gradle 文件中添加插件。

plugins {
...
    id 'kotlin-android-extensions'
}

做完这件事后想到了两个问题:

  1. 他们为什么要删除导入?
  2. 他们演示的方法不是与导入整个视图完全相同吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。