Android使用ViewBinding的詳細(xì)步驟(Kotlin簡(jiǎn)易版)
ViewBinding 是什么
2020年的3月份 巨佬 JakeWharton 開(kāi)源的 butterknife 被官宣 停止維護(hù),在github 上 說(shuō)明
Attention: This tool is now deprecated. Please switch to view binding. Existing versions will continue to work, obviously, but only critical bug fixes for integration with AGP will be considered. Feature development and general bug fixes have stopped.
翻譯過(guò)來(lái)就是,不維護(hù)了,推薦你使用 ViewBinding ,那么 ViewBinding 是什么呢
在官網(wǎng)中,這么介紹
通過(guò)視圖綁定功能,您可以更輕松地編寫(xiě)可與視圖交互的代碼。在模塊中啟用視圖綁定之后,系統(tǒng)會(huì)為該模塊中的每個(gè) XML 布局文件生成一個(gè)綁定類(lèi)。綁定類(lèi)的實(shí)例包含對(duì)在相應(yīng)布局中具有 ID 的所有視圖的直接引用。在大多數(shù)情況下,視圖綁定會(huì)替代 findViewById。
簡(jiǎn)而言之 就是用來(lái)查找view
ViewBinding 有什么作用
就想剛剛說(shuō)的 ,他就是為了替換 findViewById。 的。那么 原來(lái)的 findViewById。 有什么問(wèn)題么?干嘛就要替換了他?
總結(jié)了以下幾個(gè)原因:
- 過(guò)于冗余
findViewById 對(duì)應(yīng)所有的View 都需要書(shū)寫(xiě)以下 findViewById(R.id.xxx) 的方法
- 不安全
所謂的不安全就是分為兩個(gè) 首先是空類(lèi)型的不安全,findViewById 又可能返回為null,導(dǎo)致程序異常
第二: 強(qiáng)轉(zhuǎn)的不安全,findViewById。 將 對(duì)應(yīng)的id 需要強(qiáng)轉(zhuǎn)成對(duì)應(yīng)的View 例如
TextView tv = findViewById(R.id.textview);
一旦我的類(lèi)型給錯(cuò)了,就會(huì)出現(xiàn)異常,比如將textview 錯(cuò)強(qiáng)轉(zhuǎn)成 ImageView
正文開(kāi)始
最近這段時(shí)間在學(xué)習(xí)Kotlin,突然發(fā)現(xiàn)谷歌已經(jīng)把kotlin-android-extensions插件廢棄,目前推薦使用ViewBinding來(lái)進(jìn)行替代。
ViewBinding的目的:避免編寫(xiě)findViewById
使用ViewBinding前的注意事項(xiàng):
1、確保你的Android Studio是3.6或更高的版本
2、在build.gradle中加入以下配置:buildFeatures { viewBinding true }
使用ViewBinding的步驟:
1、首先要調(diào)用activity_main.xml布局文件對(duì)應(yīng)的Binding類(lèi),也就是ActivityMainBinding的inflate()函數(shù)去加載該布局,inflate()函數(shù)接收一個(gè)LayoutInflater參數(shù),在Activity中是可以直接獲取到的
2、接下來(lái)調(diào)用Binding類(lèi)的getRoot()函數(shù)可以得到activity_main.xml中根元素的實(shí)例
3、把根元素的實(shí)例傳入到setContentView()函數(shù)當(dāng)中,這樣Activity就可以成功顯示activity_main.xml這個(gè)布局的內(nèi)容了。
話不多說(shuō),接下來(lái)是代碼部分:
1、在build.gradle中加入:buildFeatures { viewBinding true }


2、將要使用ViewBinding的Activity打開(kāi),將代碼改成如下的樣子:

這里要注意的是,如果在別的Activity中要使用binding的話(如:我現(xiàn)在的kt文件叫做LoginActivity.kt,那么代碼如下:
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityLoginBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.webView
}
}
3、此時(shí)就可以通過(guò)binding.控件id名進(jìn)行調(diào)用

到此這篇關(guān)于Android使用ViewBinding(Kotlin簡(jiǎn)易版)的文章就介紹到這了,更多相關(guān)Android使用ViewBinding內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Intellij IDEA + Android SDK + Genymotion Emulator打造最佳Android
本文介紹Lorinnn在開(kāi)發(fā)Android過(guò)程不斷跌打滾爬中安裝的一套開(kāi)發(fā)環(huán)境,相信你在使用后同樣有不錯(cuò)的體會(huì)。2014-07-07
Android列表控件Spinner簡(jiǎn)單用法示例
這篇文章主要介紹了Android列表控件Spinner簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Android列表控件Spinner的布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12
Android實(shí)現(xiàn)簡(jiǎn)易版打地鼠
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)易版打地鼠,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
Android開(kāi)發(fā)基于Drawable實(shí)現(xiàn)圓角矩形的方法
這篇文章主要介紹了Android開(kāi)發(fā)基于Drawable實(shí)現(xiàn)圓角矩形的方法,結(jié)合實(shí)例形式分析了Drawable的功能、相關(guān)圖形繪制函數(shù)與使用方法,需要的朋友可以參考下2017-10-10
詳解AndroidStudio中代碼重構(gòu)菜單Refactor功能
這篇文章主要介紹了AndroidStudio中代碼重構(gòu)菜單Refactor功能詳解,本文通過(guò)代碼演示,功能截圖來(lái)詳細(xì)說(shuō)明as為大名重構(gòu)提供的各項(xiàng)功能,需要的朋友可以參考下2019-11-11
Android自定義view實(shí)現(xiàn)輸入控件
這篇文章主要為大家詳細(xì)介紹了Android自定義view實(shí)現(xiàn)輸入控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android自定義View仿QQ運(yùn)動(dòng)步數(shù)效果
這篇文章主要為大家詳細(xì)介紹了Android自定義View仿QQ運(yùn)動(dòng)步數(shù)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android ListView 單條刷新方法實(shí)踐及原理解析
這篇文章主要介紹了Android ListView 單條刷新方法實(shí)踐及原理解析的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
Android Studio 透明狀態(tài)欄的實(shí)現(xiàn)示例
這篇文章主要介紹了Android Studio 透明狀態(tài)欄的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Notification消息通知 自定義消息通知內(nèi)容布局
這篇文章主要為大家詳細(xì)介紹了Notification消息通知,消息合并且顯示條數(shù),自定義消息通知內(nèi)容布局,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09

