Android使用ViewBinding的詳細(xì)步驟(Kotlin簡易版)
ViewBinding 是什么
2020年的3月份 巨佬 JakeWharton 開源的 butterknife 被官宣 停止維護,在github 上 說明
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.
翻譯過來就是,不維護了,推薦你使用 ViewBinding ,那么 ViewBinding 是什么呢
在官網(wǎng)中,這么介紹
通過視圖綁定功能,您可以更輕松地編寫可與視圖交互的代碼。在模塊中啟用視圖綁定之后,系統(tǒng)會為該模塊中的每個 XML 布局文件生成一個綁定類。綁定類的實例包含對在相應(yīng)布局中具有 ID 的所有視圖的直接引用。在大多數(shù)情況下,視圖綁定會替代 findViewById。
簡而言之 就是用來查找view
ViewBinding 有什么作用
就想剛剛說的 ,他就是為了替換 findViewById。 的。那么 原來的 findViewById。 有什么問題么?干嘛就要替換了他?
總結(jié)了以下幾個原因:
- 過于冗余
findViewById 對應(yīng)所有的View 都需要書寫以下 findViewById(R.id.xxx) 的方法
- 不安全
所謂的不安全就是分為兩個 首先是空類型的不安全,findViewById 又可能返回為null,導(dǎo)致程序異常
第二: 強轉(zhuǎn)的不安全,findViewById。 將 對應(yīng)的id 需要強轉(zhuǎn)成對應(yīng)的View 例如
TextView tv = findViewById(R.id.textview);
一旦我的類型給錯了,就會出現(xiàn)異常,比如將textview 錯強轉(zhuǎn)成 ImageView
正文開始
最近這段時間在學(xué)習(xí)Kotlin,突然發(fā)現(xiàn)谷歌已經(jīng)把kotlin-android-extensions插件廢棄,目前推薦使用ViewBinding來進行替代。
ViewBinding的目的:避免編寫findViewById
使用ViewBinding前的注意事項:
1、確保你的Android Studio是3.6或更高的版本
2、在build.gradle中加入以下配置:buildFeatures { viewBinding true }
使用ViewBinding的步驟:
1、首先要調(diào)用activity_main.xml布局文件對應(yīng)的Binding類,也就是ActivityMainBinding的inflate()函數(shù)去加載該布局,inflate()函數(shù)接收一個LayoutInflater參數(shù),在Activity中是可以直接獲取到的
2、接下來調(diào)用Binding類的getRoot()函數(shù)可以得到activity_main.xml中根元素的實例
3、把根元素的實例傳入到setContentView()函數(shù)當(dāng)中,這樣Activity就可以成功顯示activity_main.xml這個布局的內(nèi)容了。
話不多說,接下來是代碼部分:
1、在build.gradle中加入:buildFeatures { viewBinding true }
2、將要使用ViewBinding的Activity打開,將代碼改成如下的樣子:
這里要注意的是,如果在別的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、此時就可以通過binding.控件id名進行調(diào)用
到此這篇關(guān)于Android使用ViewBinding(Kotlin簡易版)的文章就介紹到這了,更多相關(guān)Android使用ViewBinding內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android DrawableTextView圖片文字居中顯示實例
在我們開發(fā)中,TextView設(shè)置Android:drawableLeft一定使用的非常多,但Drawable和Text同時居中顯示可能不好控制,小編想到通過自定義TextView實現(xiàn),具體詳情大家參考下本文2017-03-036步輕松實現(xiàn)兩個listView聯(lián)動效果
這篇文章主要為大家詳細(xì)介紹了教大家通過6步輕松實現(xiàn)兩個listView聯(lián)動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04Android判斷當(dāng)前應(yīng)用程序處于前臺還是后臺的兩種方法
這篇文章主要介紹了Android判斷當(dāng)前應(yīng)用程序處于前臺還是后臺的兩種方法,有需要的朋友可以參考一下2013-12-12Win10下android studio開發(fā)環(huán)境配置圖文教程
這篇文章主要為大家詳細(xì)介紹了Win10下android studio開發(fā)環(huán)境配置圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07Android LayoutInflater.inflate()詳解及分析
這篇文章主要介紹了Android LayoutInflater.inflate()詳解及分析的相關(guān)資料,需要的朋友可以參考下2017-01-01