簡體   English   中英

Kotlin 合成導入不起作用,現在已棄用

[英]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'
}

完成此操作后,我想到了兩個問題:

  1. 他們為什么取消進口?
  2. 他們演示的方法不是與導入整個視圖完全相同嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM