ViewBinding的使用

首先什么是View Binding?
官方解釋是:視圖綁定是一項功能,可讓您更輕松地編寫與視圖交互的代碼。在模塊中啟用視圖綁定后,它會為該模塊中存在的每個 XML 布局文件生成一個 綁定類。綁定類的實例包含對在相應布局中具有 ID 的所有視圖的直接引用。在大多數(shù)情況下,視圖綁定會替換findViewById.

也就是說view binding能夠給每一個布局綁定一個布局類,這樣我們就不需要使用findViewById來獲取對應的視圖了,可以防止一些視圖為空的情況導致的錯誤。

那么如何使用呢?
首先在build.gradle中添加以下代碼,Kotlin語言

buildFeatures {
        viewBinding = true
    }

假設你的布局樣式如下

<LinearLayout ... >
    <TextView android:id="@+id/name" />
    <ImageView android:cropToPadding="true" />
    <Button android:id="@+id/button"
        android:background="@drawable/rounded_button" />
</LinearLayout>

然后在你需要調(diào)用布局控件的地方,也就是布局對應的Activity中的onCreate方法中獲取binding,得到root視圖,也就是你布局中顯示的內(nèi)容

private lateinit var binding: ResultProfileBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ResultProfileBinding.inflate(layoutInflater)
    val view = binding.root
    setContentView(view)
}

這里需要注意binding中不保存沒有設置id的引用,也就是沒有保存ImageView的引用,如果在布局中設置了id的控件,可以使用binding.id來調(diào)用對應的視圖,例如binding.name來調(diào)用上面的TextView以及binding.button來調(diào)用Button按鈕。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容