亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android中使用View Binding方法

發布時間:2021-03-20 15:44:54 來源:億速云 閱讀:247 作者:Leah 欄目:移動開發

這篇文章給大家介紹怎么在Android中使用View Binding方法,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

使用

View Binding可按模塊啟用。要在某個模塊中啟用,在該模塊的build.gradle中添加如下配置:

android {
  ...
  viewBinding {
   enabled = true
  }
 }

用法

當某個模塊啟用View Binding后,系統會為該模塊中包含的每個 XML 布局文件各生成一個綁定類。每個綁定類均包含對根視圖以及具有id 的所有視圖的引用。綁定類的類名是xml的名稱后面加“Binding”。

例如,假設某個布局文件名為 比如activity_main.xml:

<LinearLayout ... >
  <TextView android:id="@+id/tvName" />
  <TextView android:text="no id"/>
  <Button android:id="@+id/btnOpen"/>
</LinearLayout>

那么生成的綁定類類名是ActivityMainBinding。這個類有兩個成員變量tvName和btnOpen,還包含一個getRoot()方法,返回根視圖,此例中返回LinearLayout。

要獲取綁定類的實例,可以通過靜態 inflate() 方法。

private lateinit var binding: ActivityMainBinding

@Override
fun onCreate(savedInstanceState: Bundle) {
 super.onCreate(savedInstanceState)
 binding = ActivityMainBinding.inflate(inflater)
 setContentView(binding.root)
}

現在,綁定類的實例可用于引用任何視圖:

binding.tvName = "name"
binding.btnOpen.setOnClickListener{
 Log.d(TAG,"btnOpen click")
}

區別

  • 與findViewById的區別:空安全和類型安全,不存在因引用了一個錯誤的id而導致的空指針異常或者類型轉換異常。

  • 與databinding的區別:databinding僅處理使用 <layout> 代碼創建的數據綁定布局;View Binding不支持布局變量或布局表達式,因此它不能用于在xml中將布局與數據綁定。

  • 與Android Kotlin Extensions的區別:在使用上,后者簡單粗暴,直接id進行訪問,而View Binding需要創建綁定類的實例;后者有一些不友好的地方,比如相同的id存在于多個xml,容易導錯包,如果包導錯了,會有可能別的View用錯id導致空指針,而View Binding顯然不會有這種情況。

關于怎么在Android中使用View Binding方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮南市| 黎平县| 通海县| 海林市| 江口县| 新建县| 行唐县| 旬阳县| 栖霞市| 湘西| 普洱| 衡南县| 讷河市| 乐至县| 安吉县| 连州市| 读书| 额尔古纳市| 罗平县| 湖口县| 镇巴县| 青岛市| 承德市| 伊宁县| 吉安市| 眉山市| 中山市| 施甸县| 普兰县| 和田县| 海安县| 买车| 宜丰县| 镇赉县| 瑞昌市| 中阳县| 伊吾县| 青神县| 清水县| 漯河市| 拜城县|