kotlin中使用ViewBinding綁定控件的方法
kotlin中使用ViewBinding綁定控件
什么是ViewBinding?
- View Binding是Android Studio 3.6推出的新特性,主要用于減少findViewById的冗余代碼,但內(nèi)部實(shí)現(xiàn)還是通過(guò)使用findViewById。通過(guò)ViewBinding,可以更輕松地編寫(xiě)可與視圖交互的代碼。在模塊中啟用ViewBinding之后,系統(tǒng)會(huì)為該模塊中的每個(gè) XML 布局文件生成一個(gè)綁定類,綁定類的實(shí)例包含對(duì)在相應(yīng)布局中具有 ID 的所有視圖的直接引用。
- 在之前的項(xiàng)目中我們可以通過(guò)kotlin-android-extensions插件來(lái)綁定View控件的,很遺憾在Android Studio 4.1之后kotlin-android-extensions插件已被廢棄,現(xiàn)在推薦使用ViewBinding來(lái)進(jìn)行替代。
- 注意:視圖綁定在 Android Studio 3.6 Canary 11 及更高版本中可用
配置ViewBinding
- 在app級(jí)別的build.gradle中的android閉包中添加buildFeatures,設(shè)置viewBinding 為 true
android { namespace xxx compileSdkVersion versions.compileSdk defaultConfig { ... } compileOptions { ... } buildFeatures{ viewBinding true } }
配置完成后 Sync一下gradle,編譯項(xiàng)目后會(huì)在build→generated→data_binding_base_class_source_out文件中生成相應(yīng)的類。Binding類的命名規(guī)則是將布局文件按駝峰方式重命名后,再加上Binding作為結(jié)尾。例如,我們activity_main.xml布局對(duì)應(yīng)的Binding類就是ActivityMainBinding。
如果有些布局文件你不希望為它生成對(duì)應(yīng)的Binding類,可以在該布局文件的根元素位置加入tools:viewBindingIgnore="true"
使用ViewBinding
在Activity使用viewbing,如下代碼所示。注意:我們需要先Binding類的getRoot方法獲取到對(duì)應(yīng)布局文件的根元素,然后將其傳入到setContentView方法中,否則設(shè)置監(jiān)聽(tīng)事件會(huì)無(wú)法生效
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //初始化ViewBinding控件 var myBinding = ActivityMainBinding.inflate(layoutInflater) //把根元素的對(duì)象作為參數(shù)傳入到setContentView()方法中 setContentView(myBinding.root) //botton是activity_main.xml中的一個(gè)按鈕id myBinding.botton.setOnClickListener { //Code Logic } } }
到此這篇關(guān)于kotlin中使用ViewBinding綁定控件的文章就介紹到這了,更多相關(guān)kotlin使用ViewBinding綁定控件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android仿拉手網(wǎng)團(tuán)購(gòu)App產(chǎn)品詳情界面效果
這篇文章主要介紹了Android仿拉手網(wǎng)團(tuán)購(gòu)App產(chǎn)品詳情界面效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05Android基于Glide v4.x的圖片加載進(jìn)度監(jiān)聽(tīng)
本篇文章主要介紹了基于Glide v4.x的圖片加載進(jìn)度監(jiān)聽(tīng)的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08如何利用Flutter實(shí)現(xiàn)酷狗流暢Tabbar效果
這篇文章主要給大家介紹了關(guān)于如何利用Flutter實(shí)現(xiàn)酷狗流暢Tabbar效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02Android開(kāi)發(fā)使用ProgressBar實(shí)現(xiàn)進(jìn)度條功能示例
這篇文章主要介紹了Android開(kāi)發(fā)使用ProgressBar實(shí)現(xiàn)進(jìn)度條功能,結(jié)合實(shí)例形式分析了Android進(jìn)度條ProgressBar的具體樣式、布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-03-03Android實(shí)現(xiàn)簡(jiǎn)單底部導(dǎo)航欄 Android仿微信滑動(dòng)切換效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)單底部導(dǎo)航欄,Android仿微信滑動(dòng)切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Android實(shí)現(xiàn)類似網(wǎng)易新聞選項(xiàng)卡動(dòng)態(tài)滑動(dòng)效果
這篇文章主要介紹了Android實(shí)現(xiàn)類似網(wǎng)易新聞選項(xiàng)卡動(dòng)態(tài)滑動(dòng)效果的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11Android 中ListView setOnItemClickListener點(diǎn)擊無(wú)效原因分析
這篇文章主要介紹了Android 中ListView setOnItemClickListener點(diǎn)擊無(wú)效原因分析的相關(guān)資料,需要的朋友可以參考下2016-01-01Android RecycleView使用(CheckBox全選、反選、單選)
這篇文章主要為大家詳細(xì)介紹了Android RecycleView使用,CheckBox全選、反選、單選效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09