کتابخانه Data Binding بخشی از Android Jetpack .

کتابخانه Data Binding یک کتابخانه پشتیبانی است که به شما امکان می دهد اجزای رابط کاربری را در طرح بندی های خود به منابع داده در برنامه خود با استفاده از فرمت اعلامی و نه برنامه نویسی متصل کنید.

طرح‌بندی‌ها اغلب در فعالیت‌هایی با کدی تعریف می‌شوند که متدهای چارچوب UI را فراخوانی می‌کند. برای مثال، کد زیر findViewById() را فراخوانی می کند تا یک ویجت TextView را پیدا کند و آن را به ویژگی userName متغیر viewModel متصل کند:

کاتلین

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

جاوا

TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

مثال زیر نحوه استفاده از Data Binding Library برای اختصاص متن به ویجت به طور مستقیم در فایل طرح بندی را نشان می دهد. این کار نیاز به فراخوانی کدهای جاوا را که در بالا نشان داده شده است را از بین می برد. به استفاده از دستور @{} در عبارت انتساب توجه کنید:

<TextView
    android:text="@{viewmodel.userName}" />

اتصال مؤلفه‌ها در فایل طرح‌بندی به شما امکان می‌دهد بسیاری از فراخوان‌های چارچوب UI را در فعالیت‌های خود حذف کنید، و نگهداری آنها را ساده‌تر و آسان‌تر می‌کند. این همچنین می تواند عملکرد برنامه شما را بهبود بخشد و به جلوگیری از نشت حافظه و استثناهای اشاره گر تهی کمک کند.

با استفاده از کتابخانه Data Binding

از صفحات زیر برای یادگیری نحوه استفاده از Data Binding Library در برنامه های Android خود استفاده کنید.

شروع کنید
بیاموزید که چگونه محیط توسعه خود را برای کار با کتابخانه Data Binding آماده کنید، از جمله پشتیبانی از کد اتصال داده در Android Studio.

چیدمان ها و عبارات الزام آور

زبان عبارت به شما امکان می دهد عباراتی بنویسید که متغیرها را به نماهای موجود در طرح بندی متصل می کند. کتابخانه Data Binding به طور خودکار کلاس های مورد نیاز برای اتصال نماهای موجود در طرح با اشیاء داده شما را ایجاد می کند. این کتابخانه ویژگی هایی مانند واردات، متغیرها و شامل مواردی را ارائه می دهد که می توانید در طرح بندی های خود از آنها استفاده کنید.

این ویژگی های کتابخانه به طور یکپارچه با طرح بندی های موجود شما همزیستی دارند. برای مثال، متغیرهای اتصالی که می‌توانند در عبارات استفاده شوند، در داخل یک عنصر 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>

با اشیاء داده قابل مشاهده کار کنید
کتابخانه Data Binding کلاس ها و روش هایی را برای مشاهده آسان داده ها برای تغییرات فراهم می کند. وقتی منبع داده اصلی تغییر می کند، لازم نیست نگران به روز کردن رابط کاربری باشید. شما می توانید متغیرهای خود یا ویژگی های آنها را قابل مشاهده کنید. کتابخانه به شما امکان می دهد اشیا، فیلدها یا مجموعه ها را قابل مشاهده کنید.
کلاس های الزام آور ایجاد شده است
کتابخانه Data Binding کلاس های اتصالی را تولید می کند که برای دسترسی به متغیرها و نماهای طرح بندی استفاده می شود. این صفحه نحوه استفاده و سفارشی سازی کلاس های binding تولید شده را به شما نشان می دهد.
آداپتورهای صحافی
برای هر عبارت طرح بندی، یک آداپتور الزام آور وجود دارد که فریم ورک مورد نیاز را برای تنظیم ویژگی ها یا شنوندگان مربوطه فراخوانی می کند. به عنوان مثال، آداپتور binding می تواند از فراخوانی setText() برای تنظیم ویژگی متن مراقبت کند یا متد setOnClickListener() را فراخوانی کند تا شنونده ای به رویداد کلیک اضافه کند. متداول‌ترین آداپتورهای اتصال، مانند آداپتورهای ویژگی android:text که در مثال‌های این صفحه استفاده می‌شوند، برای استفاده در بسته android.databinding.adapters در دسترس شما هستند. برای فهرستی از آداپتورهای اتصال رایج، به آداپتورها مراجعه کنید. شما همچنین می توانید آداپتورهای سفارشی ایجاد کنید، همانطور که در مثال زیر نشان داده شده است:

کاتلین

@BindingAdapter("app:goneUnless")
fun goneUnless(view: View, visible: Boolean) {
    view.visibility = if (visible) View.VISIBLE else View.GONE
}

جاوا

@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
    view.visibility = visible ? View.VISIBLE : View.GONE;
}

نماهای طرح بندی را به اجزای معماری متصل کنید
کتابخانه پشتیبانی اندروید شامل اجزای معماری است که می توانید از آنها برای طراحی برنامه های قوی، قابل آزمایش و قابل نگهداری استفاده کنید. می توانید از اجزای معماری با کتابخانه Data Binding برای ساده سازی بیشتر توسعه UI خود استفاده کنید.
اتصال داده دو طرفه
کتابخانه Data Binding از اتصال دو طرفه داده پشتیبانی می کند. نماد مورد استفاده برای این نوع اتصال از توانایی دریافت تغییرات داده در یک ویژگی و گوش دادن به به روز رسانی های کاربر برای آن ویژگی به طور همزمان پشتیبانی می کند.

منابع اضافی

برای کسب اطلاعات بیشتر در مورد اتصال داده ها، به منابع اضافی زیر مراجعه کنید.

نمونه ها

Codelabs

پست های وبلاگ

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}