我是Kotlin的新手。在其他非常有趣的事情中,我發現Android擴展應該讓我在不需要findViewById
的情況下使用活動的觀點。Kotlin綜合性能衝突
其實它工作得很好,僅僅加入這一行我進口:
import kotlinx.android.synthetic.main.<layout>.*
的問題是當兩個不同的佈局包含具有相同ID(對於綜合性能,即相同的名稱)的窗口小部件,
eg兩個不同的TextView
,其編號爲txtTitle
。假設第一個屬於一個活動,第二個屬於適配器內部使用的佈局。
當我嘗試在第一個TextView(活動的一個)上調用方法時,我看不到預期的結果,就好像該調用將在另一個視圖上完成一樣。作爲對此的確認,當我撥打txtTitle.parent
時,我看到其他txtTitle
的父母和兄弟姐妹,而不是預期的父母和兄弟姐妹。
我做錯了什麼?我發現繞過這個問題的唯一辦法是在我所有的佈局,使用不同的名稱,或者繼續使用findViewById
,但它會浪費這個語言功能可惜......
我想推薦你爲你的ID使用更復雜的名稱:)它防止在我的情況下與進口「玩」。 – UneXp
不知道這是否回答你的問題,但綜合調用轉換爲調用'findviewById',並且因爲每個ID **名稱**映射到一個唯一的值,這沒關係*您使用哪個導入因爲你使用了正確的名字。 –
我想象中,但實際上它工作不好。我有一個txtTitle的活動,在這個活動裏面有一個帶有RecyclerView的片段:在RecyclerView裏面有一個帶有txtTitle的視圖。我只看到我寫的內容:當我在活動內部使用txtTitle時,它不會產生預期的結果(它不會設置TextView的文本);相反,如果我使用findViewById()從活動它的工作正確... – Massimo