簡體   English   中英

有什么方法可以通過kotlin-extensions更改自動創建的視圖的名稱?

[英]Any way to change names for auto-created views by kotlin-extensions?

我是Kotlin的新人。 我已經紅了https://kotlinlang.org/docs/tutorials/android-plugin.html並注意到可以通過導入kotlinx.android.synthetic.main.activity_main.*.將視圖自動綁定到活動kotlinx.android.synthetic.main.activity_main.*.

如果我在Activity中聲明id =“btn_login”的視圖,我可以通過它訪問它

activity.btn_login.setText("Login")

但。 有沒有辦法改變別名來查看,比如ButterKnife:

@BindView(<id of view>)
<name of view>

它是合成導入,因此從技術上講,您可以使用導入別名通過其他名稱調用它:

import kotlinx.android.synthetic.main.activity_main.view.btn_login as btnLogin

但是考慮到沒有自動執行此操作的工具,您可能只想擁抱不同的ID命名方案。

這是一個合理的:

什么,在哪里,說明-修改:

recyclerSearchSuggestions - RecyclerView顯示搜索建議

fabSearchGo - 執行搜索的FloatingActionButton

textSearchFilterChip - 表示搜索過濾器的TextView,樣式為材料芯片

buttonSearchClearFilter - 清除所選濾波器芯片的按鈕

editSearchFilter - 用於縮小搜索建議范圍的EditText

據我所知,唯一可以使用命名導入的方法。 這是Kotlin語言的一個非常好的功能,Java不支持。 不幸的是,這需要手動將其設置為您想要替換的那些,因此它可能是輕微的樣板。

但您可以將導入更改為:

import kotlinx.android...your_view as yourView

這適用於任何和所有導入,也適用於任何類型。 它可以用類,方法,常量來完成......無論你想要什么。

雖然如果您可以訪問XML文件,我建議您只更改其中的ID。 沒有理由不使用camelCase,它比在每次導入中使用as customName稍微容易一些。

暫無
暫無

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

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