資料繫結程式庫 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 的設計
雙向資料繫結
資料繫結程式庫支援雙向資料繫結。用於 這類繫結支援接收對屬性的資料變更 並同時監聽使用者對該項資源的更新。

其他資源

如要進一步瞭解資料繫結,請參閱以下資源 其他資源

範例

程式碼研究室

網誌文章