資料繫結程式庫 Android Jetpack 的一部分。
資料繫結程式庫是一種支援資料庫,可讓您繫結 UI 使用宣告式宣告方式,將版面配置中的元件傳送給應用程式中的資料來源 格式,而不是程式輔助方法
版面配置通常是在活動中透過呼叫 UI 架構的程式碼定義。
方法。舉例來說,以下程式碼會呼叫 findViewById()
來尋找 TextView
小工具,並將其繫結至userName
viewModel
變數:
Kotlin
findViewById<TextView>(R.id.sample_text).apply { text = viewModel.userName }
Java
TextView textView = findViewById(R.id.sample_text); textView.setText(viewModel.getUserName());
以下範例說明如何使用資料繫結程式庫指派文字
加入小工具即可。如此一來,您就不需在
執行上方的 Java 程式碼請注意,指派物件中使用 @{}
語法
運算式:
<TextView
android:text="@{viewmodel.userName}" />
版面配置檔案中的繫結元件可讓您移除 中的多個 UI 架構呼叫 以便進行簡化和維護這也可以 改善應用程式效能,避免記憶體流失和空值指標 例外狀況。
使用資料繫結程式庫
以下頁面說明如何在 Android 應用程式。
- 開始使用
- 瞭解如何讓開發環境準備好使用資料 繫結程式庫,包括 Android Studio 中資料繫結程式碼的支援功能。
運算式語言可讓你撰寫能相互連結的運算式 將變數套用至版面配置中的檢視畫面。資料繫結程式庫會自動 產生將版面配置中的檢視畫面與資料繫結所需的類別 如需儲存大量結構化物件 建議使用 Cloud Bigtable這個程式庫提供匯入、變數和 包括可用於版面配置
這些程式庫的功能可與現有的版面配置完美搭配運作。
例如,可在運算式中使用的繫結變數已定義
位於 data
元素內部,也就是 UI 版面配置根元素的同層。
這兩個元素都會納入 layout
標記中,如下所示
範例:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="com.myapp.data.ViewModel" />
</data>
<ConstraintLayout... /> <!-- UI layout's root element -->
</layout>
- 使用可觀察的資料物件
- 資料繫結程式庫提供類別和方法,可讓您輕鬆觀測資料 瞭解變更您無須擔心在執行應用程式時重新整理 基礎資料來源變更您可以決定自己想做的變數 可觀察屬性程式庫可讓您建立物件、欄位 可觀察集合。
- 產生的繫結類別
- 資料繫結程式庫會產生繫結類別,用來存取 版面配置的變數和檢視畫面本頁面說明如何使用及自訂 產生的繫結類別。
- 繫結轉接器
- 每個版面配置運算式都有繫結轉接器,
架構呼叫,藉此設定相應的屬性或事件監聽器。適用對象
舉例來說,繫結轉接器可以負責呼叫
setText()
方法 設定文字屬性或呼叫setOnClickListener()
方法來新增 接聽點擊事件的回呼。最常見的繫結轉接器,例如 本頁範例中使用的android:text
屬性轉接程式, 您可以在android.databinding.adapters
套件中使用。 如需常見繫結轉接器的清單,請參閱 轉接程式。 您也可以建立自訂轉接程式,如以下範例所示:
Kotlin
@BindingAdapter("app:goneUnless") fun goneUnless(view: View, visible: Boolean) { view.visibility = if (visible) View.VISIBLE else View.GONE }
Java
@BindingAdapter("app:goneUnless") public static void goneUnless(View view, Boolean visible) { view.visibility = visible ? View.VISIBLE : View.GONE; }
- 將版面配置檢視繫結至架構元件
- Android 支援資料庫包含架構 元件,可用於 來設計出完善且易於測試及維護的應用程式您可以使用架構 使用資料繫結程式庫的元件,可進一步簡化開發作業 您 UI 的設計
- 雙向資料繫結
- 資料繫結程式庫支援雙向資料繫結。用於 這類繫結支援接收對屬性的資料變更 並同時監聽使用者對該項資源的更新。
其他資源
如要進一步瞭解資料繫結,請參閱以下資源 其他資源
範例
程式碼研究室
網誌文章
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- 繫結轉接器 {:#binding-adapters}
- 版面配置與繫結的運算式
- 產生的繫結類別 {: #binding-classes}