我們在Android開發的過程中總是需要獲取XML布局中的ViewId,以便給其賦值進行顯示,早期我們只能使用 findViewById這個API,會導致很多的模版代碼出現。2013年左右Android界大神 Jake Wharton開源了Butter Knife框架,通過Bind("viewid")方式方便開發者獲取ViewId。近兩年由於谷歌對Kotlin的支持,我們開始使用 Android Kotlin extensions。 在文件中導入布局文件直接引用viewId。無需做其他額外操作,最為方便。
目前,谷歌在 Android Studio 3.6 Canary 11 及更高版本中加入了新的視圖綁定方式ViewBinding。
注意:要使用ViewBinding功能,AndroidStudio至少要升級到3.6。
導入依賴
在要使用ViewBinding的 module 的build.gradle文件中開啟ViewBinding
android {
...
viewBinding {
enabled = true
}
...
}
Android Studio 4.0 后,使用這個依賴會報以下錯誤
DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'
所以修改成如下配置
buildFeatures{
viewBinding = true
}
dataBinding{
enabled true
}
使用教程
這是一篇非常好的文章,轉載給大家。
基於ViewBinding的BaseActivity封裝嘗試
當我們知道如何在Activity中使用viewbinding后,那Fragment和Adapter中呢?
Android 視圖綁定(ViewBinding)在Activity、Fragment和Adapter中的用法(java)
如果在使用的過程中$\color{#FF0000}{不想}$為某個布局文件生成binding類,則可以使用如下屬性添加到布局的根視圖中
<LinearLayout
...
tools:viewBindingIgnore="true" >
...
</LinearLayout>