توضیحات
یک کتابخونه که با استفاده ازش میتونید UI رو به داده های برنامه وصل کنید و view ها رو بدون نیاز به کد نویسی اپدیت کنید
با استفاده از کتابخونه ی دیتابایندینگ (Data Binding) در اندروید میتونیم UI رو به داده ها وصل کنید و به سادگی و با حداقل کد، ویو رو آپدیت کنیم در این مطلب به فعال سازی و پیاده سازی دیتابایندینگ در اندروید می پردازیم.
توجه
با اومدن جت پک کامپوز در اندروید، دیتابایندینگ یک کتابخونه ی قدیمی تر به حساب میاد؛ کسایی که دنبال شروع یادگیری برنامه نویسی اندروید هستن، بهتره شروع به یادگیری جت پک کامپوز (jetpack compose) در اندروید کنن.
فعال سازی دیتابایندینگ
درون پوشه ی app داخل فایل build.gradle داخل android بنویسید:
Root Project -> app -> build.gradle
android{
...
buildFeatures{
dataBinding true
}
}
پیاده سازی دیتابایندینگ
مثال:
فرض کنید یک کلاس داریم به اسم TestFragment و یک فایل xml به اسم fragment_test برای استفاده از دیتا بایندینگ سه مرحله رو باید انجام بدیم
۱- ایجاد تگ layout:
این تگو باید قبل از هر تگ دیگه ای ایجاد کنیم.
۲- ایجاد و مقداردهی داده هایی که میخوایم view ها رو بهشون وصل کنیم
ابتدا متغیر(ها) رو مانند شکل بالا داخل تگ data تعریف میکنیم سپس داخل متد onCreateView مربوط به کلاس Fragment مانند زیر اونا رو مقدار دهی میکنیم:
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
):View {
val binding = FragmentTestBinding.inflate(inflater, container ,false)
binding.viewmodel = myViewModel
return binding.root
}
در قطعه کد بالا ابتدا با استفاده از کلاس FragmentTestBinding که خودکار ساخته شده فایل fragment_test.xml رو inflate کردیم سپس متغیر viewmodel رو که در فایل xml تعریف کرده بودیم صدا و مقداردهی کردیم در نهایت root که در اینجا LinearLayout هست رو برگردوندیم.
۳- وصل کردن view به داده ها
با استفاده از syntax @{...} ویو رو به داده ها وصل میکنیم
تا اینجای کار با Data Binding آشنا شدیم یاد گرفتیم چطور باید فعالش کنیم و چطور ازش استفاده کنیم یه موضوع دیگه از Data Binding به اسم BindingAdapter هست که بعدا سر یه فرصت مناسب بهش میپردازیم 🌸🌸🌸