Android使用ViewBinding的詳細步驟(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 是什麼呢
在官網中,這麼介紹

通過視圖綁定功能,您可以更輕松地編寫可與視圖交互的代碼。在模塊中啟用視圖綁定之後,系統會為該模塊中的每個 XML 佈局文件生成一個綁定類。綁定類的實例包含對在相應佈局中具有 ID 的所有視圖的直接引用。在大多數情況下,視圖綁定會替代 findViewById。

簡而言之 就是用來查找view

ViewBinding 有什麼作用

就想剛剛說的 ,他就是為瞭替換 findViewById。 的。那麼 原來的 findViewById。 有什麼問題麼?幹嘛就要替換瞭他?
總結瞭以下幾個原因:

  • 過於冗餘

findViewById 對應所有的View 都需要書寫以下 findViewById(R.id.xxx) 的方法

  • 不安全

所謂的不安全就是分為兩個  首先是空類型的不安全,findViewById  又可能返回為null,導致程序異常
第二: 強轉的不安全,findViewById。 將 對應的id 需要強轉成對應的View 例如

TextView tv = findViewById(R.id.textview);

一旦我的類型給錯瞭,就會出現異常,比如將textview 錯強轉成 ImageView

正文開始

最近這段時間在學習Kotlin,突然發現谷歌已經把kotlin-android-extensions插件廢棄,目前推薦使用ViewBinding來進行替代。

ViewBinding的目的:避免編寫findViewById

使用ViewBinding前的註意事項:
1、確保你的Android Studio是3.6或更高的版本
2、在build.gradle中加入以下配置:buildFeatures { viewBinding true }

使用ViewBinding的步驟:
1、首先要調用activity_main.xml佈局文件對應的Binding類,也就是ActivityMainBinding的inflate()函數去加載該佈局,inflate()函數接收一個LayoutInflater參數,在Activity中是可以直接獲取到的
2、接下來調用Binding類的getRoot()函數可以得到activity_main.xml中根元素的實例
3、把根元素的實例傳入到setContentView()函數當中,這樣Activity就可以成功顯示activity_main.xml這個佈局的內容瞭。

話不多說,接下來是代碼部分:
1、在build.gradle中加入:buildFeatures { viewBinding true }

在這裡插入圖片描述


在這裡插入圖片描述

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

在這裡插入圖片描述

這裡要註意的是,如果在別的Activity中要使用binding的話(如:我現在的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名進行調用

在這裡插入圖片描述

到此這篇關於Android使用ViewBinding(Kotlin簡易版)的文章就介紹到這瞭,更多相關Android使用ViewBinding內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: