[英]Kotlin synthetic imports doesn't work and it's now deprecated
在 kotlin 中訪問布局中的元素,您不需要這樣做:
val k = findViewById(R......)
如果您的主要活動中有一個文本元素,則該元素應自動導入到連接到視圖 FE 的 kotlin 文件中,在 kotlin 中,您可以通過在擴展該視圖的文件中直接使用它的 id 來訪問它,並且應該添加導入自動像這樣。
import kotlinx.android.synthetic.main.activity_main.view.*
然而,在最近的幾個項目中,我注意到這不會自動發生。
你是對的,Kotlin 合成與視圖綁定功能有很多相似之處。 視圖綁定的主要優點是使用錯誤的綁定 class 更難(使用合成,如果您在具有相同 ID 的多個布局中擁有視圖,則可以很容易地導入錯誤的合成 class)。
我認為它已被棄用有多種原因,即類型安全問題以及它不適用於 Java 的事實。
我在這里寫了一個關於視圖綁定的簡短教程。
經過一番挖掘,我發現 Kotlin Android Extensions 現在已棄用。 這是使用新方法的指南。 https://developer.android.com/topic/libraries/view-binding
另一種選擇是在 app.gradle 文件中添加插件。
plugins {
...
id 'kotlin-android-extensions'
}
完成此操作后,我想到了兩個問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.